US5608732A - Television distribution system having virtual memory downloading - Google Patents
Television distribution system having virtual memory downloading Download PDFInfo
- Publication number
- US5608732A US5608732A US08/115,288 US11528893A US5608732A US 5608732 A US5608732 A US 5608732A US 11528893 A US11528893 A US 11528893A US 5608732 A US5608732 A US 5608732A
- Authority
- US
- United States
- Prior art keywords
- download
- packets
- packet
- data
- download packets
- 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 - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/162—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
- H04N21/42204—User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6118—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving cable transmission, e.g. using a cable modem
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4435—Memory management
Definitions
- This invention relates generally to television cable distribution systems and particularly to those utilizing out of band communication capabilities.
- the cable distribution system for television communication has become a substantial part of television broadcast operation.
- a so-called headend facility is maintained by the cable system operator which provides a plurality of television programs modulated upon a corresponding plurality of television channel frequencies.
- a plurality of decoders are operative within the subscriber homes and other facilities which are coupled to the headend of the cable system by a distribution network.
- the function of the receiver decoders is to provide channel selection and recovery of the program material for use by the subscriber's television receiver.
- the headend includes the capability for scrambling some or all of the program channels to render them unviewable without a corresponding descrambling process within the receiver decoders. This descrambling capability is controlled in a process known as authorization.
- the cable headend system also provides operational information together with the programming material such as program or channel authorization, channel mapping and other features which require communication between the headend and the system decoders.
- this communication takes place in a protocol known as in-band communication by inserting the additional information into portions of the program signal. These systems are referred to as in-band because of the communication taking place within the channel bandwidth of the television program channel.
- the in-band communication is supplemented by an out of band communication capability so named because of the use of communication channels outside the television program channel.
- an available broadcast frequency such as a FM radio frequency is used to provide this out of band communication.
- data from the head end controller is modulated upon an FM radio frequency carrier and received by FM receivers within the system decoders.
- the modulated data is recovered by the decoder receivers and used to operate the decoders in response to the headend data.
- FIG. 1 sets forth a block diagram of a television distribution system constructed in accordance with the present invention
- FIGS. 2A, 2B and 2C when taken together set forth a flow diagram of the operation of the present invention system
- FIG. 3 sets forth a flow diagram of the timer interrupt process of the present invention system
- FIG. 4 sets forth a flow diagram of the processor link interrupt operation of the present invention system
- FIGS. 5A and 5B when taken together set forth a flow diagram of the out of band communication interrupt operation of the present invention system.
- FIG. 6 sets forth a flow diagram of the infrared remote control interrupt operation of the present invention system.
- FIG. 7 sets forth a packet structure according to the present invention.
- FIG. 1 sets forth a block diagram of a portion of a television cable system constructed in accordance with the present invention and generally referenced by numeral 10.
- Cable system 10 includes a headend unit enclosed within dashed line 11 and a typical decoder enclosed within dashed line enclosure 12. Additional decoders are represented by dots 12A.
- Headend 11 and decoder 12 are coupled via an in-band communication link 13 and an out of band communication link 14.
- Headend 11 includes a headend controller 20 having a plurality of input terminals 22 coupled thereto.
- a file assembler 25 is coupled to headend controller 20 and to download executive 23.
- a dialogue program manager 26 is coupled to headend 20 and to file assembler 25 and download executive 23.
- Headend controller 20 is further coupled to a channel transmitting system 21 which in accordance with conventional fabrication techniques produces a plurality of program signals and in-band operational data modulated upon a plurality of television channel frequency carriers which are applied to in-band communication link 13.
- Headend 11 further includes a download executive system 23 coupled to an FSK transmitter 24 which in turn is coupled to out of band data link 14.
- FSK transmitter 24 includes a data modulating system operable upon a predetermined carrier such as an FM radio frequency carrier to provide a data modulated signal upon communication link 14.
- receiver decoder 12 includes a tuner 30 coupled to an intermediate frequency amplifier 31 which in turn is coupled to a data slicer 32.
- the output of data slicer 32 is coupled to a combined sync suppression and video inversion circuit 34.
- a horizontal phase lock loop and automatic gain control system 35 is operatively coupled to circuit 34 and to a gain control system within IF amplifier 31 (not shown).
- a decoder and descrambler 36 is coupled to combination circuit 34 and to the scrambled video output signal of IF amplifier 31.
- a conditional access microprocessor 50 comprises a predefined function processor coupled to tuner 30, IF 31 and the output of data slicer 32.
- a keypad 41 provides an input to processor 50.
- An LED display 42 providing a digital output display is coupled to and controlled by processor 50.
- An FSK receiver 44 is coupled to out of band link 14.
- a dialogue microprocessor 60 includes a memory manager 63 together with a pair of input buffers 64. Buffers 64 are coupled to the recovered data output of FSK receiver 44.
- An interpreter 61 and a random access memory 62 are operatively coupled to memory manager 63 by a data link 65.
- An on-screen display system 45 constructed in accordance with conventional fabrication techniques is coupled to a fixed channel modulator 46, the output of which is coupled to a television receiver (not shown) constructed in accordance with conventional fabrication techniques. On-screen display 45 is further coupled to the unscrambled composite video output of descrambler 36.
- An infrared signal receiver 43 is coupled to microprocessor 60 and is operatively associated with a user accessible infrared remote control 40.
- cable system 10 operates using an out of band communication supplement to the in-band communication system.
- program channel information modulated upon a plurality of program channels is communicated between headend 11 and decoder 12 through in-band communication link 13. Additional operational and housekeeping data is also communicated via in-band link 13 using the data transmission protocol of the transmitted television signal described below.
- headend system 11 further includes an out of band communication capability which is operative to permit the headend controller to communicate and affect the operation of decoder 12 using data transmitted over out of band communication link 14.
- decoder 12 is provided with two sources of data communication with headend 11.
- out of band communication link 14 is not encumbered with program information and limitations imposed thereby and thus is typically continuously operable to continuously transmit data over out of band link 14. As a result, a substantially greater amount of operational data may be communicated using out of band link 14.
- headend controller 20 will require a download of data to all or some of the decoders within the cable system.
- Headend controller 20, dialogue manager 26 and file assembler 25 cooperate to assemble a plurality of data files within file assembler 25 which assembles the raw to-be-downloaded data into groups of records.
- Each group is formed of records having the same record type, the same record length and which are intended for download to the same decoder or group of decoders within the system.
- download executive 23 begins the process of formatting the group of records for download in accordance with the present invention system. Initially, the executive 23 determines the initial parameters of the record group such as the amount of memory which will be required to receive the download within the decoders and the number of records which will be required to properly download the data. Thereafter, the download executive formats the records in a record set by performing the following procedures. Initially, the first record within the record set is assembled to define the record structure which will be used for all records within the set. Next, the data within the record will be encrypted if encryption is required. Not all records require encryption within the system. Different forms of encryption may be utilized with the object of providing protection from unauthorized use of the data. In a typical encryption format, a cross-referenced encryption look up table is maintained within the headend system while a corresponding inverse look up table used for decryption is maintained within the decoder.
- each data packet includes a record within the set together with an initial packet start indicator, certain housekeeping information such as a sequential number for the packet within the series, error detection in accordance with the CRC-32 system, and an end of packet indicator as the final packet element.
- the executive transfers the packets to FSK transmitter 24 which then broadcasts the packets via out of band communication link 14.
- the series of data packets for a given record set are communicated over link 14 in a periodically recirculating fashion which, as described below, permits the decoder to receive the initial packet, process it, and then examine other broadcast data packets until the next sequence numbered packet is downloaded and so on until all packets within the series have been received and processed.
- the packet series may be, i.e. rebroadcast, many times until all packets in the series have been successfully downloaded. This packet circulation process greatly reduces the memory required for downloading within the decoders and expands the system capability and flexibility.
- each data packet received by the decoder is temporarily stored within a buffer and is examined for series number, address and sequence number. In this manner, the decoder determines whether the examined data packet is intended for that particular decoder and whether the data packet is the next packet within the series upon which the present decoder is operative. It should be recalled that each packet is uniquely identified as a particular sequence numbered packet within a particular series of packets. Thus, the decoder sequentially recovers packets within a given series of data packets and correspondingly sequentially recovers the records therein. The sequential records are in accordance with the operation set forth below presented to an interpreter for instructions to which the system process responds to implement the downloaded data.
- Tuner 30 operates in response to data supplied by microprocessor 50 to select a specific program channel to be received via in-band link 13.
- Tuner 30 couples the selected program signal to intermediate frequency amplifier 31 which recovers the modulated sync and video information and couples it to data slicer 32 in the form of a scrambled composite video signal.
- intermediate frequency amplifier 31 couples the composite sync signal to microprocessor 50.
- Data slicer 32 unscrambles the received composite video data signal and applies it concurrently to microprocessor 50 and combination circuit 34. Because, in most instances, the video itself is scrambled, combination circuit 34 operates upon the applied data to drive descrambler 36 which in turn produces an unscrambled composite video signal for application to on-screen display system 45.
- Horizontal phase-locked loop and automatic gain control system 35 produces an amplitude gain voltage which is applied to intermediate frequency amplifier 31 to maintain a constant signal level.
- tuner 30, intermediate frequency amplifier 31, data slicer 32, combination circuit 34, phase-locked loop and automatic gain control 35 and decoder 36 cooperate to receive a selected television channel and recover the program information therefrom for use in operating on-screen display 45.
- the particular channel received by tuner 30 is selected in response to the user's input via keypad 41 to microprocessor 50.
- microprocessor 50 responds to provide the required information to tuner 30 to properly configure tuner 30 to receive the desired program channel.
- microprocessor 50 configures display 42 to display the channel numbers of the selected program channel.
- additional data may be communicated from headend 11 via out of band communication link 14 using inputs 22, controller 20, download executive 23 and transmitter 24.
- the out of band communication on link 14 will comprise a single direction continuous or repetitive communication in which the to-be-communicated data is periodically repeatedly broadcast as part of a generally continuous data stream.
- the data communication via out of band link 14 utilizes interpretive execution rather than the conventional downloading of native or raw data code.
- the interpretive code recovered by FSK receiver 44 is applied to memory manager 63 of microprocessor 60.
- the interpretive code recovered by FSK receiver 44 is initially loaded into buffers 64 within processor 60 and thereafter operated upon in accordance with interpreter 61.
- memory manager 63 communicates the received interpretive code to interpreter 61 via data link 65 and in response thereto, receives the appropriate instruction or direction.
- the operation of microprocessor 60 and memory manager 63 cooperate with interpreter 61 to convert the interpretive code received by directing processor 60 to a specific portion of a dialogue program stored within memory 62.
- memory 62 includes a dialogue program comprising a plurality of instruction sets each having a series of sequential instruction steps.
- processor 60 carries forward with the instruction steps therein in a sequential manner until the particular instruction set or group is completed.
- each instruction set portion or sequence group within the dialogue program is precluded from including a loop or branch backwards instruction. This ensures that once a particular instruction set portion or sequence group within the dialogue program is entered, processor 60 will at some point complete the instruction set or sequence group and will, as a result, be freed up to receive the next set of instructions. As a result, the system is protected against the problems of lockout.
- This lockout proof capability of the present invention system is particularly advantageous due to the one-way transmission provided by out of band link 14.
- Such one-way transmission systems tends to experience difficulties due to the inability of the receivers to disconnect from the system or provide major system operation changes during system active use.
- the present invention system due to the use of sequential instruction sets which by design are free of either loop or branch backwards actions provide an assurance that the system decoder will, despite being subjected to extremely erroneous data, recover its capability to accept and respond to a corrective download which will reconfigure the system properly.
- memory 62 is organized in a segregated fashion such that certain portions of the dialogue program stored therein may not be changed by the execution of an instruction set portion or sequence group but rather may only be changed by data which is directly downloaded from headend 11 and out of band link 14.
- processor 60 responds to each instruction, command, or data transmission received by initially applying the received information to interpreter 61 which in turn responds to the applied information by providing an instruction to processor 60 which directs it to a specific instruction set portion or sequence group within the dialogue program stored in memory 62.
- processor 50 FSK receiver 44 or infrared receiver 43.
- processor 50 may elect to tune a specific selected channel by inputting the channel number using keypad 41.
- the keypad input is communicated by processor 50 to processor 60 without interpretation.
- Processor 60 then utilizes memory manager 63 to present the instruction to interpreter 61.
- Interpreter 61 in turn directs memory manager 63 and processor 60 to the corresponding instruction set portion or sequence group within the dialogue program of memory 62 which is used to tune the selected channel.
- Processor 60 then works through the sequential steps within the instruction set to provide the appropriate instructions to processor 50 which in turn responds by producing the tuner control signals which configure tuner 30 to receive the selected program channel.
- a similar process takes place in response to other user inputs via keypad 41 or remote 40 and infrared receiver 43.
- the present invention system responds in a similar fashion to data communicated via out of band link 14 and FSK receiver 44.
- the communicated data is organized into a plurality of data packets each of which is preceded by a packet start indicator and packet end indicator as well as a sequence number.
- data is downloaded in the form of a series of data packets each of which is individually processable and sequentially related to the other data packets within the download.
- memory manager 13 includes a pair of buffers within buffers 64 which may used in an alternating fashion by processor 60. In this alternating process, one buffer is receiving and storing an incoming data packet while the other is being accessed by processor 60 to transfer the data therefrom to interpreter 61 for interpretation.
- processor 60 The response of processor 60 to each data packet is this application or presentation of the data therein to a interpreter 61 to receive direction as to the specific instruction set portion or sequence group within the dialogue program of memory 62. If, for example, a determination is made at headend 11 to change the carrier frequency of a particular program channel for decoder 12, the appropriate data is configured within download executive 23 into a series of sequential data packets having appropriate start and end indicators together with sequence numbers and other operational data. As the data within the data packets is recovered and organized, the original downloaded data is reconstructed within memory manager 63 and thereafter presented to interpreter 61 which responds by directing processor 60 to the instruction set portion or sequence group within the dialogue program which will provide implementation of the change in carrier frequency.
- the headend controller is capable of configuring each decoder within the system to provide the desired changes of configuration.
- the system is capable of permitting the user to exercise significant customization or personal configuration by inputting the keypad or remote data inputs which are interpreted by interpreter 61 and processed by processor 60.
- the interpretive execution in which processor 60 brings each downloaded data record or user input to interpreter 61 for interpretation and instruction to the appropriate portion of the dialogue program within memory 62 permits the organization of the dialogue program to be segmented into the defined nonlooping or nonbackwardly branching instruction set portions or sequence groups described above.
- Timing circuit 66 is operative to provide the timing operations for processor 60 and includes a plurality of resettable clocks operative in the manner set forth in the flow diagrams below. In accordance with the operation set forth below in FIGS.
- processor 60 operates in an ongoing process which is subject to interruption by the occurrence of certain events within the system. These events may, for example, include the timing out of the time base within timer 66, the need to communicate between processors 50 and 60 via access link 51, the occurrence of an out of band data download, or the reception of an infrared remote transmitted signal from infrared remote controller 40 and receiver 43. These types of events trigger system interruptions in which processor 60 temporarily leaves the main program at the next acceptable point and performs the necessary operations to respond to such events and thereafter returns to the main program in process.
- FIGS. 2A, 2B and 2C when taken together set forth flow diagrams showing the main program or ongoing operation of processors 60 and 50.
- FIGS. 3 and 4 set forth the flow diagrams of the timer interrupt and processor link interrupt respectively while the interrupt resulting from out of band data downloading is set forth in FIGS. 5A and 5B taken together.
- FIG. 6 sets forth the interrupt which occurs in response to the user's input of a remote control signal via remote control 40 and infrared receiver 43.
- the system operation commences at an initiate step 80 following which the infrared decode and baud rate are set in steps 81 and 82. Thereafter, the system moves to step 83 in which a determination is made as to whether transition events or transitions have been detected. Examples of transitions for which the system searches at step 83 include infrared remote inputs, the user access of keypad 41, video information such as authorization requests and the like, the timing expiration of one of the timers within timing circuit 66, an out of band data download via FSK receiver 44 and out of band link 14, and the maintenance of the system clock referred to as "minute".
- step 90 a determination is made as to whether deferred calls are present.
- deferred calls comprise instructions which have been stored during interpretative actions.
- the system moves to on-screen display upkeep step 110 (seen in FIG. B). If, however, deferred calls are present, the system moves to step 92 in which the painted flag is reset.
- step 84 in which the information such as transition type and parent and child state are assembled. Thereafter, the system moves to step 85 in which the appropriate action to be taken is retrieved following which the system moves to step 86 to determine whether the action to be taken is a paint action. Paint actions comprise the video information display on on-screen display 45 (seen in FIG. 1). If the action is not a painting action, the system moves through steps 91 and 92 to locate the instruction pointer and reset the painted flag indicating no paint operation was done. In the event the action determined at step 86 requires a paint operation, the system moves to step 87 in which the on-screen display is painted, displaying the required video information.
- step 100 a determination is made as to whether a valid instruction is present. If the instruction is valid, the system moves to step 101. If not, it moves to step 102.
- step 101 a determination is made as to whether the instruction comprises a zero indicative of the end of an instruction sequence. If the zero end of instruction indicator is not present, the system moves to steps 104 and 105 respectively in which the instruction is executed and the instruction pointer is incremented to the next instruction. Thereafter, the system returns to step 100 in a cyclical process which is repeated until a zero instruction indicating the end of the instruction set is found at step 101.
- step 102 a determination is made as to whether the painted flag is set. If the painted flag is set, the system moves directly to on-screen display upkeep 110 (seen in FIG. 2B). If the painted flag is not set, the system moves to step 103 to determine whether a paint action is requested. If no paint action is requested, the system moves to on-screen display upkeep 110. If a paint operation is needed, the system returns to paint on-screen display step 87.
- FIG. 2B continues the flow diagram initiated in FIG. 2A and thus the system moves from steps 102 and 103 in FIG. 2A to step 110 in FIG. 2B in which on-screen display upkeep is implemented.
- On-screen display upkeep involves the ongoing maintenance of the appropriate video display for the television receiver responding to decoder 12.
- the system moves to steps 111 and 112 in which additional ongoing maintenance operations are performed.
- the non-volatile memory within memory 62 (seen in FIG. 1) is updated, while in step 112 the memory management or organizational functions are carried forward.
- the system moves to step 113 in which a check is made for an ongoing data management process. In the event data is being managed, the program returns to step 81.
- New leads to memory via FSK receiver will wait until memory is in a steady state. If no management is taking place, FSK data is checked. In the event at a "time of day" download the system moves to steps 121 through 123 and step 114 in which a new time is loaded into the clock, the minute change is set and the time, renumber and replace flags are reset. Thereafter, the system returns to IR decode step 81 (shown in FIG. 2A).
- step 120 in the event a time of day has not been loaded, the system moves to step 124 in which a determination is made as to whether the renumber flag has been set. In the event a renumber flag is found, the system moves to step 125 in which the affected records are renumbered and thereafter to a step 126 in which a need coaless flag is set. This process of renumbering records and coalessing the memory is used to fill otherwise unused portions of the memory and make additional memory available. The system then moves to step 127 in which the time, renumber, and replace flags are reset afterwhich the system moves to step 128 in which the instruction pointer is located and thereafter to steps 115 and 129.
- step 124 in the event renumbering is not required, the system moves to step 130 in which a determination is made as to whether a record requires replacement. If no replacement is required, the system moves to step 123. If, however, replacement is required, the system moves to allocate step 131 in FIG. 2C.
- FIG. 2C sets forth the remainder of the main program set forth in FIGS. 2A and 2B above and continues following step 130 in FIG. 2B afterwhich the system moves to an allocate step 131.
- Allocation refers to the process in which memory space is reserved or set aside for a particular record in the systems operation.
- the system moves to step 132 in which the size of the to-be-allocated portion of memory is determined.
- step 133 in which the existing memory space is evaluated and a determination is made as to whether sufficient memory space is available to allocate. If insufficient space is available, the system moves directly to step 123 (seen in FIG.
- step 131 in which the time, renumber, and replace flags are reset and thereafter returns to the beginning of the main program in FIG. 2A at step 81. If however, sufficient space is available within the memory, the system moves to step 134 in which the required space is allocated or reserved and thereafter, through step 135 in which the remaining space indicator is updated. The system then moves through step 136 in which the series numbers are updated afterwhich the need coaless flag is set at step 137 and the download flag is set at step 138. Thereafter, the system moves to step 123 in FIG. 2B.
- step 140 in which a determination is made as to whether the download is an authorized download.
- step 136 If the download is unauthorized, the system moves to step 136. If, however, the download is authorized, the system moves to step 141 in which a determination is made as to whether the data will fit in available memory. If the data will fit, the system moves to step 142 and stores the new data afterwhich the system moves to step 136. If the new data does not fit in available space, the system moves directly to step 123 (seen in FIG. 2B).
- FIGS. 2A, 2B and 2C sets forth the primary or main operative program of the present invention system.
- a number of interrupt subprograms are operated within the present invention system and represent temporary diversions from the main program shown in FIGS. 2A through 2C.
- These interrupts are set forth in FIGS. 3 through 6 and each are characterized by an initial departure from the ongoing main program followed by an exit or return to the point of interruption in the main program.
- FIG. 3 sets forth the process undertaken in response to a timer interrupt.
- the system enters the timer interrupt at step 150 afterwhich a one second count is implemented at step 151.
- a plurality of timers are operative within the present invention system. These timers are incremented, and any time out indicated, at the time base.
- the infrared off timer is timed out at step 152 following which the system moves to a step 153 to determine whether or not the process link (that is the communication link between processors 50 and 60 in FIG. 1) is running. In the event the processor link is running, the system moves to an exit and return step 154 directly. If, however, the processor link is not running, the system moves through a step 155 in which the link is activated and afterwhich the system moves to step 154.
- FIG. 4 sets forth a processor link interrupt flow diagram which depicts the system response to activation of the processor link.
- the dialogue processor processor 60 in FIG. 1
- the system moves to step 161 in which the data is stored within the buffers of processor 60.
- step 165 a determination is made as to whether a full command from processor 50 is received. If a full command is received, the system then moves to step 162 in which an alert flag is set afterwhich the data to be transferred from processor 60 to processor 50 is transferred. Once this transfer is complete, the system moves to exit/return step 164 and resumes the processing at the point of interrupt. In the event a full command has not been received, the system moves directly to step 163 and proceeds.
- FIGS. 5A and 5B set forth the system processing in response to an out of band data interrupt.
- the system upon the occurrence of a download of data via out of band link 14 and FSK receiver 44 (seen in FIG. 1), the system initially switches the dialogue processor buffers at step 170.
- the use of alternating buffers within memory manager 63 of dialogue processor 60 permits the system to simultaneously evaluate data being downloaded into one buffer while the downloading process continues into the alternate buffer.
- the downloaded data is examined to determine the presence of errors and to carry forward checks for parity, overrun, framing and carrier detection. In the event no errors are found, the system moves to step 166 and a start indicator is looked for.
- the out of band data is downloaded in a plurality of data packets each having a packet start and packet end or stop character together with a sequence number and the data portion itself. If no start indicator is found, the system moves to step 167 and looks for a stop indicator. If no stop indicator is found, the system moves directly to step 178. If, however, a start is found at step 166, the system moves to step 174 and the system pointer is set to the last start indicator and at step 175, the start flag is set. Similarly, if a stop is found at step 167, the system moves to step 176 and a pointer is then set to the first stop indicator at step 177. Thus, the system tags the last start and first stop indicators within the data received.
- step 178 a determination is made as to whether the data manager is working on a previous renumber, a replacement, or a time of day set. In the event it is not, the system moves to step 180 in which a determination is made as to whether a start indicator has been found. If a start indicator is present, the system moves to a step 181 in which a determination is made as to whether a stop indicator has been found. If a stop indicator has been found, the system moves to step 182 in which a determination is made as to whether the stop preceded the start. If the start indicator preceded the stop indicator (which then should indicate a complete data packet inbetween), the system moves to step 187 in which the flag indicating a data packet has been received or "have packet" is set. Thereafter, the system moves to step 188 in which the data between start and stop is loaded to the main packet buffer afterwhich at step 189, the loading, start, and stop flags are reset and the system moves to step 196 in FIG. 5B.
- step 171 in the event errors or improper parity or other defects are discovered at step 171, the system moves to step 172 in which the loading, have packet, start, and stop flags are reset. Thereafter, the system moves to exit/return step 173 and resumes the interrupted main processing.
- step 180 in the event a determination is made at step 180 that no start indicator is present, the system moves to step 190 in which a determination is made as to whether a stop indicator is present. If no stop indicator is present, the system determines at step 194 whether data loading is taking place. If no data loading is taking place, the system returns to step 172.
- step 195 the system moves to step 195 and continues loading data to the main packet buffer afterwhich it moves to have packet step 196 (seen in FIG. 5B). If a determination is made at step 190 that a stop indicator is present, the system moves to step 191 at which the have packet flag is set afterwhich the system moves through step 192 in which the data preceding the stop indicator is loaded. Thereafter, the stop flag is reset at step 193 and the system moves to step 196. If no stop indicator is found at step 190, the system moves to step 168 to look for data loading to the packet buffer. If loading is found, the system moves to step 169 and continues loading. If loading is not found, the system returns to step 172.
- step 181 in the event a determination is made that no stop indicator is present, the system moves to step 184 in which the loading flag is set afterwhich the system moves to step 185 and begins loading data to the beginning of the main packet buffer. Following the loading at step 185, the system moves to step 186 and resets the start flag and thereafter moves to step 196.
- step 182 in the event a determination is made that a stop indicator precedes the start indicator, the system moves to step 183 to determine whether loading is in process. If not, the system moves to step 185. If loading is occurring, the system moves to step 191.
- a complete data packet comprises a start indicator, a stop indicator, a sequence number and the data itself.
- the system moves from step 196 to step 210 in which a determination is made as to whether a start indicator is present. If a start indicator is present, the system moves to step 213 to determine whether the previous examination was a second attempt at packet examination. If not a second attempt, the system moves to step 184 in FIG. 5A. If, however, the attempt was a second attempt, the system moves to exit return step 214 and resumes the main program operation. If at step 210 no start indicator is found, the system moves to step 211 at which the start, stop and have packet flags are reset afterwhich the system returns to main program operation via exit/return step 212.
- step 196 in the event a complete packet is found, the system moves through a series of packet checking steps 197, 198 and 199 which determine the presence of the necessary criteria for continuing to evaluate this packet.
- a check sum evaluation is carried forward in which the sum of digits within the packet is checked against a CRC number. If the check fails, the system moves to step 210. If, however, a correct sum is found, the system then determines whether the packet is addressed to this particular decoder by examining the address within the packet. If not addressed to this decoder, the system returns to step 210. If this decoder is being addressed, the system moves to step 199 to determine whether this particular packet is the next packet in the series being assimilated by the decoder.
- the downloaded data is organized into a series of sequentially numbered data packets each having a sequence number associated therewith. These packets are repeatedly downloaded and upon completion of one packet processing, the system then looks for the next packet in the packet sequence. Thus, in the event the packet being examined is not the next packet in the sequence, the system returns to step 210. If, however, the packet being examined is the next packet, the system moves to step 200 in which the presence of a time of day update is determined. If a time of day update is present, the system moves to step 204 setting the time flag and thereafter moves to step 211. If no time update is set, however, the system moves to step 201 to determine whether a renumber instruction is present.
- step 205 sets the renumbered flag afterwhich it moves to step 211.
- step 202 determines whether the instruction is a replacement. If the instruction is a replacement, the system moves to step 206 and sets the replacement flag afterwhich it moves to step 211. If the instruction is not a replacement, the system returns to the main program at the point of interruption via exit/return step 203.
- FIG. 6 sets forth a flow diagram of the system operation in the event an infrared remote input interrupt takes place. Beginning at interrupt step 215 in which the interrupt is detected, the interrupt is caused by a determination that an edge is present. With an edge detected, the system sets a timer at step 217 and then moves to a step 218 in which the timer is timed out. Once the timer set has timed out, the system moves to step 219 in which a determination is made as to whether the input is a zero. If no zero input is found, the system sets an error flag at step 226 and then moves to a set digit timer 220. In the event a zero is found at step 219, the system moves directly to step 220 and the zero indicates a valid IR code.
- a digit timer is set which is timed out at step 221. Following the timing out at step 221, the system moves to step 222 in which the IR data is sampled and thereafter stored at step 223. Finally, at step 224, the IR off timer is reset and the system returns to the main program at the point of interruption via exit/return step 227.
- FIG. 7 sets forth a typical data packet used by the present invention system for virtual memory downloading. It should be recalled that each set of records assembled into a record set characterized by having the same type, length and decoder address are formatted by headend 11 into a series of sequentially numbered data packets. It should also be recalled that the record within the initial packet in each series is used to describe the record structure to be used within the records of that series. Thus, in FIG. 7, the diagram shows a typical download packet generally referenced by numeral 240. Download packet 240, in essence, comprises a data packet 243 preceded by a start of packet indicator 241 and followed by an end of packet indicator 242. A protocol indicator 244 identifies the particular download protocol being used.
- address type 245 provides an identification of the following global or individual address.
- the term global refers to messages intended for all decoders within a particular distribution group.
- the address type indicator 245 could be an individual address indication. The use of individual address indicator permits the addressing of messages to a particular decoder using a number code.
- the global or individual address is 246.
- An update series indicator 247 is used to define a series of packets which are to be processed to download a particular record set.
- a sequence number 248 follows update series indicator 247 and indicates the sequential number within the series for each download packet. It should be recalled that when operating on a particular update series, the decoder accepts download packets and processes them in their numbered sequence.
- a record type indicator 249 is used to indicate the type of record which is to follow within the download packet.
- Record types include standard records, which are to be stored by the processor within the decoder, time records which indicate the changes to be made to maintain proper month, day and time, renumber records, memory allocation, or other types of records.
- a receive tier 250 provides indication of the authorization required, if any, to receive the download packet. Receive tier 250 also indicates the use or need for decryption within the decoder.
- a storage location indicator 251 provides information as to whether the particular record is to replace a record or group of records within a record set or, alternatively, indicate that the record may be stored anywhere. Following storage location indicator 251, the new record 252 provides the particular record to be processed by the decoder.
- a check sum number 253 is provided to permit the system to determine the accuracy and absence of errors within the data packet.
- the check sum number is derived by calculating the sum of digit values for all prior data bytes within fields 245 through 252. This check sum number is calculated by the download executive at the headend and inserted within field 253 to be transferred within download packet 240.
- the sum of data bytes within fields 245 through 252 is calculated by the decoder's processor to derive a check sum number which is then compared to the check sum number within field 253 of the download packet. If the check sum numbers do not agree, the packet is discarded and is not processed.
- end of packet indicator 242 identifies the termination of data packet 243.
- the system shown utilizes an interpretive data execution in which the process presents each downloaded data package to an interpreter and receives a direction from the interpreter to initiate a corresponding instruction set within the dialog processor program.
- the dialog program is organized into a plurality of instruction sets or sequence groups which are carried forward by the processor and which are free of either loop or branch backward instructions.
- the memory 62 housing the dialog program is segregated to provide write protection of downloaded records which assure that the running steps of an instruction set portion or sequence group within the program cannot affect changes of the segregated memory portions. These portions remain changeable by out of band data download, however, to maintain the system flexibility.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Communication Control (AREA)
Abstract
Description
Claims (32)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/115,288 US5608732A (en) | 1993-09-01 | 1993-09-01 | Television distribution system having virtual memory downloading |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/115,288 US5608732A (en) | 1993-09-01 | 1993-09-01 | Television distribution system having virtual memory downloading |
Publications (1)
Publication Number | Publication Date |
---|---|
US5608732A true US5608732A (en) | 1997-03-04 |
Family
ID=22360392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/115,288 Expired - Lifetime US5608732A (en) | 1993-09-01 | 1993-09-01 | Television distribution system having virtual memory downloading |
Country Status (1)
Country | Link |
---|---|
US (1) | US5608732A (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0830017A2 (en) * | 1996-09-17 | 1998-03-18 | Nextlevel Systems, Inc. | Delivery and acquisition of data segments with optimized inter-arrival time |
US20010003846A1 (en) * | 1999-05-19 | 2001-06-14 | New Horizons Telecasting, Inc. | Encapsulated, streaming media automation and distribution system |
US20030142129A1 (en) * | 2002-01-31 | 2003-07-31 | Kleven Michael L. | Content processing and distribution systems and processes |
US6970960B1 (en) * | 1997-10-03 | 2005-11-29 | Thomson Licensing Sa | Instream loader |
US7313810B1 (en) | 1997-09-25 | 2007-12-25 | The Weather Channel | Multimedia information transmission and distribution system |
US20100158101A1 (en) * | 2008-12-22 | 2010-06-24 | Chung-Ping Wu | Bit rate stream switching |
CN101052130B (en) * | 2006-04-03 | 2010-11-10 | 三星电子株式会社 | Apparatus and method for providing encoder and decoder information |
US20110023076A1 (en) * | 2009-07-24 | 2011-01-27 | Anthony Neal Park | Adaptive streaming for digital content distribution |
US9521354B2 (en) | 2009-07-24 | 2016-12-13 | Netflix, Inc. | Adaptive streaming for digital content distribution |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4521891A (en) * | 1980-07-07 | 1985-06-04 | Sytek, Incorporated | Multiple channel data communication system |
US4534024A (en) * | 1982-12-02 | 1985-08-06 | At&T Bell Laboratories | System and method for controlling a multiple access data communications system including both data packets and voice packets being communicated over a cable television system |
US4916539A (en) * | 1983-04-21 | 1990-04-10 | The Weather Channel, Inc. | Communications system having receivers which can be addressed in selected classes |
US5425100A (en) * | 1992-11-25 | 1995-06-13 | A.C. Nielsen Company | Universal broadcast code and multi-level encoded signal monitoring system |
-
1993
- 1993-09-01 US US08/115,288 patent/US5608732A/en not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4521891A (en) * | 1980-07-07 | 1985-06-04 | Sytek, Incorporated | Multiple channel data communication system |
US4534024A (en) * | 1982-12-02 | 1985-08-06 | At&T Bell Laboratories | System and method for controlling a multiple access data communications system including both data packets and voice packets being communicated over a cable television system |
US4916539A (en) * | 1983-04-21 | 1990-04-10 | The Weather Channel, Inc. | Communications system having receivers which can be addressed in selected classes |
US5425100A (en) * | 1992-11-25 | 1995-06-13 | A.C. Nielsen Company | Universal broadcast code and multi-level encoded signal monitoring system |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0830017A3 (en) * | 1996-09-17 | 1998-09-16 | General Instrument Corporation | Delivery and acquisition of data segments with optimized inter-arrival time |
US6173330B1 (en) | 1996-09-17 | 2001-01-09 | Motorola, Inc. | Delivery and acquisition of data segments with optimized inter-arrival time |
EP0830017A2 (en) * | 1996-09-17 | 1998-03-18 | Nextlevel Systems, Inc. | Delivery and acquisition of data segments with optimized inter-arrival time |
US7313810B1 (en) | 1997-09-25 | 2007-12-25 | The Weather Channel | Multimedia information transmission and distribution system |
US6970960B1 (en) * | 1997-10-03 | 2005-11-29 | Thomson Licensing Sa | Instream loader |
US8621508B2 (en) | 1999-05-19 | 2013-12-31 | Xialan Chi Ltd., Llc | Encapsulated, streaming media automation and distribution system |
US20010003846A1 (en) * | 1999-05-19 | 2001-06-14 | New Horizons Telecasting, Inc. | Encapsulated, streaming media automation and distribution system |
US6792615B1 (en) | 1999-05-19 | 2004-09-14 | New Horizons Telecasting, Inc. | Encapsulated, streaming media automation and distribution system |
US20050060759A1 (en) * | 1999-05-19 | 2005-03-17 | New Horizons Telecasting, Inc. | Encapsulated, streaming media automation and distribution system |
US20030142129A1 (en) * | 2002-01-31 | 2003-07-31 | Kleven Michael L. | Content processing and distribution systems and processes |
CN101052130B (en) * | 2006-04-03 | 2010-11-10 | 三星电子株式会社 | Apparatus and method for providing encoder and decoder information |
US9319696B2 (en) | 2008-12-22 | 2016-04-19 | Netflix, Inc. | Bit rate stream switching |
US20100158101A1 (en) * | 2008-12-22 | 2010-06-24 | Chung-Ping Wu | Bit rate stream switching |
US11589058B2 (en) | 2008-12-22 | 2023-02-21 | Netflix, Inc. | On-device multiplexing of streaming media content |
US10484694B2 (en) | 2008-12-22 | 2019-11-19 | Netflix, Inc. | On-device multiplexing of streaming media content |
US10097607B2 (en) | 2008-12-22 | 2018-10-09 | Netflix, Inc. | Bit rate stream switching |
US9009337B2 (en) | 2008-12-22 | 2015-04-14 | Netflix, Inc. | On-device multiplexing of streaming media content |
US9060187B2 (en) | 2008-12-22 | 2015-06-16 | Netflix, Inc. | Bit rate stream switching |
US20140189771A1 (en) * | 2009-07-24 | 2014-07-03 | Netflix, Inc. | Adaptive streaming for digital content distribution |
US9521354B2 (en) | 2009-07-24 | 2016-12-13 | Netflix, Inc. | Adaptive streaming for digital content distribution |
US9648385B2 (en) * | 2009-07-24 | 2017-05-09 | Netflix, Inc. | Adaptive streaming for digital content distribution |
US9769505B2 (en) | 2009-07-24 | 2017-09-19 | Netflix, Inc. | Adaptive streaming for digital content distribution |
WO2011011724A1 (en) * | 2009-07-24 | 2011-01-27 | Netflix, Inc. | Adaptive streaming for digital content distribution |
US8631455B2 (en) * | 2009-07-24 | 2014-01-14 | Netflix, Inc. | Adaptive streaming for digital content distribution |
US20110023076A1 (en) * | 2009-07-24 | 2011-01-27 | Anthony Neal Park | Adaptive streaming for digital content distribution |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5644354A (en) | Interactive video system | |
US4995080A (en) | Television signal scrambling system and method | |
US6233734B1 (en) | System and method for controlling the broadcast and recording of television programs and for distributing information to be displayed on a television screen | |
US4599647A (en) | Receiver with interface for interaction with controller-decoder | |
KR100357506B1 (en) | Packet program component detector | |
AU643926B2 (en) | Virtual channels for a multiplexed analog component (MAC) television system | |
CA2190346C (en) | Method and apparatus for processing a conditional access program guide as for a satellite tv service | |
US4739510A (en) | Direct broadcast satellite signal transmission system | |
US5036537A (en) | Geographic black-out method for direct broadcast satellite system | |
US5016273A (en) | Dual communication mode video tape recorder | |
EP0685141B1 (en) | Method of selecting cable television converter groups | |
US4623920A (en) | Cable network data transmission system | |
US5724525A (en) | System and method for remotely selecting subscribers and controlling messages to subscribers in a cable television system | |
WO2001001699A1 (en) | Television program guide | |
EP1109400A1 (en) | Transmission of a command to a receiver or to a decoder | |
WO1995002942A1 (en) | Method of and apparatus for channel mapping with relative service identification | |
KR20000076398A (en) | Smartcard for use with a receiver of encrypted broadcast signal, and receiver | |
WO1994024826A1 (en) | Addressed messaging in a cable television system | |
KR20060066173A (en) | Broadcast and reception systems, and receivers | |
US5608732A (en) | Television distribution system having virtual memory downloading | |
CN101083746A (en) | Broadcast receiver and method for providing diagnostic information | |
CA1220849A (en) | Address-programmable catv converter | |
US5668946A (en) | System for cable communication wherein interpretively coded data transmitted from headend selectively initiate loop free instruction sets stored in receiver-decoder to affect the behavior thereof | |
EP1219117A1 (en) | Television program guide | |
KR20000076400A (en) | Broadcast and Reception System, and Conditional Access System therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ZENITH ELECTRONICS CORP., ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BESTLER, CAITLIN B.;DAILY, MACK S.;REEL/FRAME:006796/0363 Effective date: 19930901 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: ZENITH ELECTRONICS LLC, ILLINOIS Free format text: CONVERSION;ASSIGNOR:ZENITH ELECTRONICS CORPORATION;REEL/FRAME:020654/0328 Effective date: 20070131 |
|
AS | Assignment |
Owner name: LG ELECTRONICS INC., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ZENITH ELECTRONICS LLC;REEL/FRAME:020794/0890 Effective date: 20080415 |
|
FPAY | Fee payment |
Year of fee payment: 12 |