WO1998043433A1 - Data processing system - Google Patents

Data processing system Download PDF

Info

Publication number
WO1998043433A1
WO1998043433A1 PCT/EP1997/002116 EP9702116W WO9843433A1 WO 1998043433 A1 WO1998043433 A1 WO 1998043433A1 EP 9702116 W EP9702116 W EP 9702116W WO 9843433 A1 WO9843433 A1 WO 9843433A1
Authority
WO
WIPO (PCT)
Prior art keywords
receiver
decoder
application
television
event
Prior art date
Application number
PCT/EP1997/002116
Other languages
French (fr)
Inventor
Jean-Claude Sarfati
Jerome Meric
Christophe Declerck
Original Assignee
Canal+ Societe Anonyme
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to ZA9703613A priority Critical patent/ZA973613B/en
Priority to CA002284011A priority patent/CA2284011A1/en
Priority to BR9714598-0A priority patent/BR9714598A/en
Priority to CN97182174A priority patent/CN1254478A/en
Priority to NZ500206A priority patent/NZ500206A/en
Priority to AU27709/97A priority patent/AU740740B2/en
Priority to PCT/EP1997/002116 priority patent/WO1998043433A1/en
Priority to PL97335775A priority patent/PL183663B1/en
Application filed by Canal+ Societe Anonyme filed Critical Canal+ Societe Anonyme
Priority to EP97921756A priority patent/EP0968611A1/en
Priority to JP54476998A priority patent/JP2001518262A/en
Priority to TR1999/02271T priority patent/TR199902271T2/en
Priority to IL13194797A priority patent/IL131947A0/en
Publication of WO1998043433A1 publication Critical patent/WO1998043433A1/en
Priority to NO994540A priority patent/NO994540L/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/0014Coin-freed apparatus for hiring articles; Coin-freed facilities or services for vending, access and use of specific services not covered anywhere else in G07F17/00
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/004Diagnosis, testing or measuring for television systems or their details for digital television systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4367Establishing a secure communication between the client and a peripheral device or smart card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44236Monitoring of piracy processes or activities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • H04N7/1675Providing digital key or authorisation information for generation or regeneration of the scrambling sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof

Definitions

  • the present invention relates to receiver/decoders for digital television systems.
  • the present invention finds specific application in a broadcast digital television system in which received signals are passed through a receiver to a receiver/decoder and thence to a television set.
  • the receiver/decoder decodes a compressed MPEG-type signal into a television signal for the television set. It is controlled by a remote controller handset, through an interface in the receiver/decoder.
  • One way of providing the interactivity described above is to run an application on the receiver/decoder through which the television signal is received.
  • the code for the application could be permanently stored in the receiver/decoder. However, this would be rather limiting.
  • the receiver/decoder should be able to download the code for a required application. In this way, more variety may be provided, and applications can be updated as required without any action on the part of the user.
  • the receiver/decoder It is desirable to allow a number of different manufacturers to manufacture the receiver/decoder. Obviously all the manufacturers must satisfy certain common functional specifications, but subject to that, it is desirable to permit them to make their own choices with regard to the details of their designs, including the details of the hardware. However, the overall functioning of the receiver/decoder, and in particular the functional manner in which it processes applications, must be identical for all decoder/receivers. The design of those parts of its control system concerned with processing applications must therefore be common to all receiver/decoders, and should be the responsibility of the system operator rather than the hardware manufacturers. These two objectives (freedom in hardware design and common system functionality) are obviously difficult to harmonize. The object of the present invention is to overcome this difficulty.
  • the present invention provides a receiver/decoder for a digital television system, comprising: means for receiving a compressed MPEG-type signal; means for decoding the received signal to provide a television signal; means for supplying the television signal to a television; a user input interface; and a computer system for controlling the receiver/decoder in accordance with input signals received through the user input interface, the computer system comprising: device manager means for receiving signals from a plurality of ports and providing data to said ports; and virtual machine means, coupled to the device manager means, comprising means for processing data received from the device manager means and returning data thereto.
  • the virtual machine means comprise an operating engine, a library of routines, an interpreter, storage means for storing a plurality of instruction sequences, queue management means, and buffer management means.
  • the receiver/decoder further comprises a plurality of interfaces for coupling to external units, said device manager means comprising at least one device means associated with either at least one interface or with at least one function of the receiver/decoder.
  • the device manager means include at least one device means coupled to at least one device driver.
  • the receiver/decoder includes a plurality of application sources each for providing an application for controlling the receiver/decoder and/or the television, and wherein the operating engine is located between the application sources and the logical device means, and includes queue means for receiving events generated through the device manager means and passing them to the engine.
  • the operating engine comprises a plurality of process sequencer units associated with the device means, and means for extracting events from the queue means and actuating the associated process sequencer units accordingly.
  • filter means for matching an event against a list of event types before entering the event in the queue means.
  • the receiver/decoder further includes means for storing at least one application.
  • a further aspect of the present invention provides a receiver/decoder for receiving broadcast signals, said receiver/decoder comprising: means for controlling the receiver/decoder in accordance with received signals, said controlling means comprising: means for receiving signals from a plurality of ports and providing data to said ports; and virtual machine means for processing data received from the receiving means and returning data thereto.
  • Another aspect of the present invention comprises a system comprising a plurality of receiver/decoders each as described above, wherein the different receiver/decoders have a common virtual machine means and respective different device manager means coupled to respective different circuitry.
  • Figure 1 shows the overall architecture of a digital television system according to the preferred embodiment of the present invention
  • Figure 2 shows the architecture of an interactive system of the digital television system
  • Figure 3 shows the arrangement of files within a module downloaded into the memory of an interactive receiver/decoder
  • Figure 4 is a schematic diagram of interfaces of the receiver/decoder
  • Figure 5 shows the arrangement of memory volumes of the memory of the interactive receiver/decoder
  • Figure 6 is a functional block diagram of the- receiver/decoder.
  • Figure 7 shows certain components of the virtual machine and run time engine in more detail.
  • the invention includes a mostly conventional digital television system 2000 which uses the known MPEG-2 compression system to transmit compressed digital signals.
  • MPEG-2 compressor 2002 in a broadcast centre receives a digital signal stream (typically a stream of video signals).
  • the compressor 2002 is connected to a multiplexer and scrambler 2004 by linkage 2006.
  • the multiplexer 2004 receives a plurality of further input signals, assembles one or more transport streams and transmits compressed digital signals to a transmitter 2008 of the broadcast centre via linkage 2010, which can of course take a wide variety of forms including telecom links.
  • the transmitter 2008 transmits electromagnetic signals via uplink 2012 towards a satellite transponder 2014, where they are electronically processed and broadcast via notional downlink 2016 to earth receiver 2018, conventionally in the form of a dish owned or rented by the end user.
  • the signals received by receiver 2018 are transmitted to an integrated receiver/decoder 2020 owned or rented by the end user and connected to the end user's television set 2022.
  • the receiver/decoder 2020 decodes the compressed MPEG-2 signal into a television signal for the television set 2022.
  • a conditional access system 3000 is connected to the multiplexer 2004 and the receiver/decoder 2020, and is located partly in the broadcast centre and partly in the decoder. It enables the end user to access digital television broadcasts from one or more broadcast suppliers.
  • a smartcard capable of deciphering messages relating to commercial offers (that is, one or several television programmes sold by the broadcast supplier), can be inserted into the receiver/decoder 2020. Using the decoder 2020 and smartcard, the end user may purchase commercial offers in either a subscription mode or a pay-per-view mode.
  • An interactive system 4000 also connected to the multiplexer 2004 and the receiver/decoder 2020 and again located partly in the broadcast centre and partly in the decoder, enables the end user to interact with various applications via a modemmed back channel 4002.
  • Figure 2 shows the general architecture of the interactive television system 4000 of the digital television system 1000 of the present invention.
  • the interactive system 4000 allows an end user to buy items from on- screen catalogues, consult local news and weather maps on demand and play games through his television set.
  • the interactive system 4000 comprises in overview four main elements: an authoring tool 4004 at the broadcast centre (or elsewhere) for enabling a broadcast supplier to create, develop, debug and test applications; an application and data server 4006 the broadcast centre, connected to the authoring tool 4004 for enabling a broadcast supplier to prepare, authenticate and format applications and data for delivery to the multiplexer and scrambler 2004 for insertion into the MPEG-2 transport stream (typically the private section thereof) to be broadcast to the end user; a virtual machine including a run time engine (RTE) 4008, which is an executable code installed in the receiver/decoder 2020 owned or rented by the end user for enabling an end user to receive, authenticate, decompress, and load applications into the working memory 2024 of the receiver/decoder 2020 for execution.
  • RTE run time engine
  • the engine 4008 also runs resident, general-purpose applications.
  • the engine 4008 is independent of the hardware and operating system; and a modemmed back channel 4002 between the receiver/decoder 2020 and the application and data server 4006 to enable signals instructing the server 4006 to insert data and applications into the MPEG-2 transport stream at the request of the end user.
  • the interactive television system operates using "applications” which control the functions of the receiver/decoder and various devices contained therein. Applications are represented in the engine 4008 as "resource files”.
  • a “module” is a set of resource files and data. Several modules may be required to make up an application.
  • a "memory volume" of the receiver/decoder is a storage space for modules.
  • An “interface” is used to download modules. Modules may be downloaded into the receiver/decode 2020 from the MPEG-2 transport stream.
  • an application is a piece of computer code for controlling high level functions of preferably the receiver/decoder 2020. For example, when the end user positions the focus of a remote controller on a button object seen on the screen of the television set 2022 and presses a validation key, the instruction sequence associated with the button is run.
  • An interactive application proposes menus and executes commands at the request of the end user and provides data related to the purpose of the application.
  • Applications may be either resident applications, that is, stored in the ROM (or FLASH or other non-volatile memory) of the receiver/decoder 2020, or broadcast and downloaded into the RAM or FLASH memory of the receiver/decoder 2020.
  • the receiver/decoder 2020 is equipped with a resident initiating application which is an adaptable collection of modules (this term being defined in more detail hereunder) enabling the receiver/decoder
  • the application provides core features which can be modified by the broadcast supplier if required. It also provides an interface between the resident application and downloaded applications.
  • the startup application allows any application, either downloaded or resident, to run on the receiver/decoder 2020. This application acts as a bootstrap executed on arrival of a service in order to start the application. Startup is downloaded into RAM and therefore can be updated easily. It can be configured so that ' the interactive applications available on each channel can be selected and run, either immediately after downloading or after preloading. In the case of preloading, the application is loaded into the memory 2024 and is activated by the startup when required.
  • the Program Guide is an interactive application which gives full information about programming. For example, it may give information about, say, one week's television programmes provided on each channel of a digital television bouquet.
  • the end user accesses an add-on screen, overlaid on the event shown on the screen of the television set 2022.
  • This add-on screen is a browser giving information on the current and next events of each channel of the digital TV bouquet.
  • the end user accesses an application which displays a list of information on events over one week.
  • the end user can also search and sort events with simple and customised criteria.
  • the end user can also access directly a selected channel.
  • a Pay Per Niew application The Pay Per View Application is an interactive service available on each PPN channel of the digital TV bouquet in conjunction with the conditional access system 3000.
  • the end user can access the application using a TV guide or channel browser. Additionally, the application starts automatically as soon as a PPV event is detected on the PPV channel. The end user is then able to buy the current event either through his daughter smartcard 3020 or via the communication server 3022 (using a modem, a telephone and DTMF codes, MI ⁇ ITEL or the like).
  • the application may be either resident in the ROM of the receiver/decoder 2020 or downloadable into the RAM of the decoder 2020.
  • a PC Download application On request, an end user can download computer software using the PC download application.
  • the magazine browser application comprises a cyclic video broadcast of images with end user navigation via on-screen buttons.
  • the quiz application is preferably synchronised with a broadcast quiz programme. As an example, multiple choice questions are displayed on the screen of the television 2022, and the user can select an answer using the remote controller 2026. The quiz application can inform the user whether the answer is correct or not, and can keep count of the user's score.
  • a Teleshopping application In one example of the teleshopping application, offers of goods for sale are transmitted to the receiver/decoder 2020 and displayed on the television 2022. Using the remote controller, the user can select a particular item to buy. The order for the item is sent via the modemmed back channel 4002 to the application and data server 4006 or to a separate sales system the telephone number of which has been downloaded to the receiver/decoder, possibly with an order to debit the account for a credit card which has been inserted into one of the card readers 4036 of the receiver/decoder 2020.
  • a Telebanking application In one example of the telebanking application, the user inserts a bank card into one of the card readers 4036 of the receiver/decoder 2020.
  • the receiver/decoder 2020 dials up the user's bank, using a telephone number stored in the bank card or stored in the receiver/decoder, and then the application provides a number of facilities which can be selected using the remote controller 2026, for example for downloading via the telephone line a statement of account, transferring funds between accounts, requesting a cheque book, etc.
  • An Internet Browser application In one example of the Internet browser application, instructions from the user, such as a request to view a web page having a particular URL, are entered using the remote controller 2026, and these are sent by the modemmed back channel 4002 to the application and data server 4006. The appropriate web page is then included in the transmissions from the broadcast centre, received by the receiver/decoder 2020 via the uplink 2012, transponder 2014 and downlink 2016, and displayed on the television 2022.
  • the resource files comprise graphic object description unit files, variables block unit files, instruction sequence files, application files and data files.
  • the graphic object description unit files describe the screens, the man-machine interface of the application.
  • the variables block unit files describe the data structures handled by the application.
  • the instruction sequence files describe the processing operations of the applications.
  • the application files provide the entry points for the applications.
  • the applications constituted in this way can use data files, such as icon library files, image files, character font files, colour table files and ASCII text files.
  • An interactive application can also obtain on-line data by effecting inputs and/or outputs.
  • the engine 4008 only loads into its memory those resource files it needs at a given time. These resource files are read from the graphic object description unit, instruction sequence and application files; variables block unit files are stored in memory following a call to procedure for loading modules and remain locked there until a specific call to a procedure for unloading modules is made.
  • a module 4010 such as a tele-shopping module, is a set of resource files and data comprising the following: a single application file 4012; an undetermined number of graphic object description unit files 4014; an undetermined number of variables block unit files 4016; an undetermined number of instruction sequence files 4018; and where appropriate, data files 4020 such as icon library files, image files, character font files, colour table files and ASCII text files.
  • each module comprises a group of MPEG tables.
  • Each MPEG table may be formatted as a number of sections.
  • each section has a "size" of up to 4 kbytes.
  • modules similarly are split into tables and sections, the size of the section varying with the transport medium.
  • Modules are transported in the MPEG data stream in the form of data packets of typically 188 bytes within respective types of data stream, for example, video data streams, audio data streams and teletext data streams.
  • Each packet is preceded by a Packet Identifier (PID) of 13 bits, one PID for every packet transported in the MPEG data stream.
  • PID Packet Identifier
  • a programme map table, (PMT table) contains a list of the different data streams and defines the contents of each data stream according to the respective PID.
  • a PID may alert a device to the presence of applications in the data stream, the PID being identified using the PMT table.
  • the receiver/decoder 2020 includes several interfaces; specifically, a tuner 4028 for the MPEG signal flow, a serial interface 4030, a parallel interface 4032, and two card readers 4036, one for a smartcard forming part of the system and one for bank cards (used for making payments, home banking, etc).
  • the receiver/decoder also includes an interface 4034 to a modemmed back channel 4002 to the television signal producer, so that the user can indicate preferences, etc back to the television signal (programme) producer.
  • a memory volume is a storage space for modules 4010. Such storage spaces are located in the memory 2024 of the receiver/decoder 2020. With reference to Figure 5, the memory 2024 is divided into a RAM volume 4022, FLASH volume 4024, and ROM volume 4026, but this physical organization is distinct from the logical organization. The memory may further be divided into memory volumes associated with the various interfaces through which modules are downloaded into the receiver/decoder 2020, for example an MPEG volume for storing modules downloaded from the MPEG bitstream and a serial volume for storing modules received via a serial interface. From one point of view, the memory can be regarded as part of the hardware; from another point of view, the memory can be regarded as supporting or containing the whole of the system shown apart from the hardware.
  • receiver/decoder may be designed and manufactured by various different manufacturers. It may therefore have various different hardware designs, though they will of course all conform to the same functional specification. It is therefore important that a given application behaves in the same way on every receiver/decoder, and that a receiver/decoder should execute all applications in the same, correct manner.
  • the system can be regarded a centred on a run time engine 4008 forming part of a virtual machine 4007. This is coupled to applications on one side (the "high level” side), and, on the other side (the “low level” side), via various intermediate logical units discussed below, to the receiver/decoder hardware 4061.
  • the receiver/decoder hardware can be regarded as including the various ports or interfaces as discussed above (the interface 2030 for the handset 2026, the MPEG stream interface 4028, the serial interface 4030, the parallel interface 4032, the interfaces to the card readers 4036, and the interface 4034 to the modemmed back channel 4002).
  • various applications 4057 are coupled to the unit 4007; some of the more commonly used applications may be more or less permanently resident in the system, as indicated at 4057, while others will be downloaded into the system, eg from the MPEG data stream or from other ports as required.
  • the unit 4007 includes, in addition to the run time engine 4008, some resident library functions 4006 which include a toolbox 4058.
  • the library contains miscellaneous functions in C language used by the engine 4008. These include data manipulation such as compression, expansion or comparison of data structures, line drawing, etc.
  • the library 4006 also includes information about firmware 4060 in the receiver/decoder 2020, such as hardware and software version numbers and available RAM space, and a function used when downloading a new device 4062. Functions can be downloaded into the library, being stored in Flash or RAM memory.
  • the run time engine 4008 is coupled to a device manager 4068 which is coupled to a set of devices 4064 which are coupled to device drivers 4060 which are in turn coupled to the ports or interfaces.
  • a device driver can be regarded as defining a logical interface, so that two different device drivers may be coupled to a common physical port.
  • a device driver will normally be coupled to more than one device driver; if a device is coupled to a single device driver, the device will normally be designed to incorporate the full functionality required for communication, so that the need for a separate device driver is obviated. Certain devices may communicate among themselves.
  • the applications will be generated by various service (programme) providers.
  • the run time engine will be designed and provided by the system authority or designer.
  • the device manager, the devices, and the device drivers will be provided by the receiver/decoder manufacturer (hardware provider). It will however be realized that this correspondence between the various levels of the receiver/decoder and the three levels of providers will not normally be precise.
  • the system authority will also in practice normally provide some of the applications, the receiver/decoder manufacturer may be involved in the logical device design, and so on.
  • Each function of the receiver/decoder 2020 is represented as a device 4062.
  • Devices can be either local or remote.
  • Local devices 4064 include smartcards, SCART connector signals, modems, serial and parallel interfaces, a MPEG video and audio player and an MPEG section and table extractor.
  • Remote devices 4066 executed in a remote location, differ from local devices in that a port and procedure must be defined by the system authority or designer, rather than by a device and device driver provided and designed by the receiver/decoder manufacturer.
  • a new device 4062 When a new device 4062 is created, it can be installed in existing receiver/decoders 2020 by downloading the relevant application 4056 from the broadcast centre.
  • This downloading is performed in the receiver/decoder 2020 by an application 4056 which checks the hardware and software versions and, if correct, loads the software module representing the new device 4062 and asks a procedure of the library 4006 to install the new device code within the firmware (in Flash memory). This can provide a flexible and secure installation of new functions within the receiver/decoder 2020 without affecting the rest of the software.
  • the device manager 4068 is a common software interface between the application 4056 and the specific functions of the receiver/decoder 2020.
  • the device manager 4068 controls access to devices 4062, declares receipt of an unexpected event, and manages shared memory.
  • the run time engine 4008 runs under the control of the microprocessor and a common application programming interface. They are installed in every receiver/decoder 2020 so that all receiver/decoders 2020 are identical from the application point of view.
  • the engine 4008 runs applications 4056 on the receiver/decoder 2020. It executes interactive applications 4056 and receives events from outside the receiver/decoder 2020, displays graphics and text, calls devices for services and uses functions of the library 4006 connected to the engine 4008 for specific computation.
  • the run time engine 4008 is an executable code installed in each receiver/decoder 2020, and includes an interpreter for interpreting and running applications.
  • the engine 4008 is adaptable to any operating system, including a single task operating system (such as MS-DOS).
  • the engine 4008 is based on process sequencer units (which take various events such as a key press, to carry out various actions), and contains its own scheduler to manage event queues from the different hardware interfaces. It also handles the display of graphics and text.
  • a process sequencer unit comprises a set of action-groups. Each event causes the process sequencer unit to move from its current action-group to another action-group in dependence on the character of the event, and to execute the actions of the new action-group.
  • a logical channel is distinct from a physical port, so that there can for example be two different kinds of logical channel using the same physical port. Events on those two logical channels will be passed to respective different process sequencer units. In addition, there can be two distinct logical channels of the same type using a physical port. In that case, each of the two channels will of course require its own process sequencer unit, so two instances (instantiations) of the same process sequencer unit will be created.
  • the engine 4008 comprises a code loader to load and download applications 4056 into the receiver/decoder memory 2028. Only the necessary code is loaded into the RAM or Flash memory, in order to ensure optimal use. The downloaded data is verified by an authentication mechanism to prevent any modification of an application 4056 or the execution of any unauthorized application.
  • the engine 4008 further comprises a decompressor. As the application code (a form of intermediate code) is compressed for space saving and fast downloading from the MPEG-2 transport stream or via a built-in receiver/decoder mode, the code must be decompressed before loading it into the RAM.
  • the engine 4008 also comprises an interpreter to interpret the application code to update various variable values and determine status changes, and an error checker.
  • the main loop of the engine 4008 extracts events from the queue means and actuates the associated process sequencer units accordingly.
  • a procedure is called up to receive external events (such as pressure on one of the remote control keys, reception of an MPEG-2 section or a message on a serial port) from the event interface. All events, whether input to the presentation function (discussed below) or received through an interface, pass through an event interface before being processed by the engine 4008.
  • the procedure comprises a message, called an "event", which is put into one of 5 queues of the engine 4008, with respective priority levels 0 to 4.
  • the engine 4008 After the call to the event interface, which fills the queues with events, the engine 4008 searches the queues in order of decreasing priority (from level 4 to level 0) for an event. The event so found is removed from the queue and used to actuate the process sequencer unit for which it is intended.
  • a program (such as an application instruction sequence) has to be declared as a "client", that is, a logical access-way to the device 4066 or the device manager 4068.
  • the manager gives the client a client number which is referred to in all accesses to the device.
  • a device 4066 can have several clients, the number of clients for each device 4066 being specified depending on the type of device 4066.
  • a client is introduced to the device 4066 by a procedure "Device: Open Channel”. This procedure assigns a client number to the client.
  • a client can be taken out of the device manager 4068 client list by a procedure "Device: Close Channel”.
  • the access to devices 4062 provided by the device manager 4068 can be either synchronous or asynchronous.
  • a procedure “Device: Call” is used. This is a means of accessing data which is immediately available or a functionality which does not involve waiting for the desired response.
  • a procedure “Device: I/O” is used. This is a means of accessing data which involves waiting for a response, for example scanning tuner frequencies to find a multiplex or getting back a table from the MPEG stream.
  • an event is put in the queue of the engine to signal its arrival.
  • a further procedure "Device: Event” provides a means of managing unexpected events.
  • main loop of the run time engine is coupled to a variety of process sequencer units, and when the main loop encounters an appropriate event, control is temporarily transferred to one of the process sequencer units.
  • Communication between the run time engine and the applications is also performed largely via two types of process sequencer units, graphic object description unit process sequencer units and an instruction sequence process sequencer unit.
  • the essentials of the operation of the process sequencer units can best be described by considering the operation of the graphic object description unit and instruction sequence process sequencer units; the operation of the other process sequencer units is similar.
  • the graphic object description .unit process sequencer units manage the man-machine interface, and the instruction sequence process sequencer unit executes instruction sequences in response to instruction sequence execution requests received from the graphic object description unit process sequencer unit. (An instruction sequence is a sequence of decompressed intermediate code commands.)
  • a presentation function communicating with the engine 4008 administers the presentation of text and graphics to the end user, and the presentation of end user actions to the engine 4008.
  • the text and graphics are overlaid on the display on the television set 2022, and the user may interact with the application 4056 by means of a keyboard (using that term to include the remote controller 2026).
  • a graphic object description unit process sequencer unit receives query events from the television screen of the end user, and processes such a query by starting to read the corresponding interface file 4014. It then uses the graphic functions of the interface to trace the graphic object on the screen of the television set 2022. The end user can use the four arrow keys of the remote control 2026 to move around the graphic object. Every time that a key is pressed, an event is processed by the graphic object description unit process sequencer unit. When the user validates a choice using the VALID key on the remote control 2026, the code of the event is processed by the graphic object description unit process sequencer unit, which generates events requesting instruction sequences to be run and sends them to the instruction sequence process sequencer unit.
  • the instruction sequence process sequencer unit When the instruction sequence process sequencer unit receives a instruction sequence execution request from the graphic object description unit process sequencer unit, it reads the corresponding instruction sequence file 4018 and loads it entirely into memory. It then starts running the instruction sequence and continues until the instruction sequence is finished or until it encounters a function called rerouting. When the instruction sequence is finished, the system returns to cycle through the main loop for acquiring events and rescheduling.
  • the device manager includes a queue 100 into which events from the devices are passed for temporary storage.
  • the virtual machine sends a signal to this queue to extract the first item from it.
  • This event item is moved to a queue structure 101 in the virtual machine. Depending on the priority level of the event item, it is inserted into the appropriate one of the 5 queues 0 to 4.
  • Event items are extracted from the queue structure 101 by a queue selector unit 102 under the control of the run time engine.
  • a process sequencer unit engine 104 which consists of a process sequencer unit driver 105 and a set of process sequencer units 106.
  • Each process sequencer unit is a set of action- groups linked together, so that each step from one action-group to the next action- group is, in general, dependent on the current action-group and the nature of the event.
  • Different process sequencer units have different sizes and complexities, including one in which the "next" action-group, ie the action-group to which the system steps on in response to an event, is dependent solely on the nature of the event but is independent of the current action-group.
  • there may be several copies of a process sequencer unit ie several identical process sequencer units, to deal eg with several separate data streams using identical protocols through a single port.
  • Action- groups in the process sequencer unit can also send event messages to other process sequencer units.
  • the identification of the instruction sequence is sent to a instruction sequence selector 107. This obtains the desired instruction sequence from a instruction sequence memory 108 and passes it to a instruction sequence interpreter 109, which executes the instruction sequence.
  • the system also includes a filter 110, which is loaded with event types eg from the process sequencer units 106.
  • event types eg from the process sequencer units 106.
  • an event item is passed from the queue 100 in the device manager to the queue structure 101 in the virtual machine, its type or character is matched against the list in the filter 110, and if it is of a type which is not recognized, it is rejected. This ensures that if say the device manager or the keyboard generates events of a type which the virtual machine cannot deal with, those events are not passed to the queue structure 101. (If events of this kind were passed to the queue structure 101, either they would accumulate in that queue structure or they might cause malfunctioning of the process sequencer unit engine 104.)
  • PC/ASB/19710 Downloading a Computer File from a Transmitter via a Receiver/Decoder to a Computer (Attorney Reference No. PC/ASB/19711), Transmission and Reception of Television Programmes and Other Data (Attorney Reference No. PC/ASB/19712), Downloading Data (Attorney Reference No. PC/ASB/19713), Computer Memory Organisation (Attorney Reference No. PC/ASB/19714), Television or Radio Control System Development (Attorney Reference No. PC/ASB/19715), Extracting Data Sections from a Transmitted Data Stream (Attorney Reference No. PC/ASB/19716), Access Control System (Attorney reference No.

Abstract

A receiver/decoder for a broadcast digital television system in which received signals are passed through a receiver to the receiver/decoder and then to a television set. The receiver/decoder decodes a compressed MPEG-type signal, and is controlled by a remote controller handset, through an interface in the receiver/decoder. The operation of the receiver/decoder is controlled by a virtual machine (VM) which includes a run time engine (RTE). The receiver/decoder includes a plurality of interfaces to external units, and logical driver devices for the interfaces. Applications control the external units by the RTE, which receives events from the interfaces via a set of queues. The RTE comprises a plurality of process sequencer units associated with the device means, and means for extracting events from the queue means and actuating the associated process sequencer units accordingly.

Description

DATA PROCESSING SYSTEM
The present invention relates to receiver/decoders for digital television systems.
The advent of digital transmission systems intended primarily for broadcasting television signals, in particular but not exclusively satellite television systems, has opened up the possibility of using such systems for other purposes. One of these is to provide interactivity with the end user.
The present invention finds specific application in a broadcast digital television system in which received signals are passed through a receiver to a receiver/decoder and thence to a television set. The receiver/decoder decodes a compressed MPEG-type signal into a television signal for the television set. It is controlled by a remote controller handset, through an interface in the receiver/decoder.
One way of providing the interactivity described above is to run an application on the receiver/decoder through which the television signal is received. The code for the application could be permanently stored in the receiver/decoder. However, this would be rather limiting. Preferably, the receiver/decoder should be able to download the code for a required application. In this way, more variety may be provided, and applications can be updated as required without any action on the part of the user.
It is desirable to allow a number of different manufacturers to manufacture the receiver/decoder. Obviously all the manufacturers must satisfy certain common functional specifications, but subject to that, it is desirable to permit them to make their own choices with regard to the details of their designs, including the details of the hardware. However, the overall functioning of the receiver/decoder, and in particular the functional manner in which it processes applications, must be identical for all decoder/receivers. The design of those parts of its control system concerned with processing applications must therefore be common to all receiver/decoders, and should be the responsibility of the system operator rather than the hardware manufacturers. These two objectives (freedom in hardware design and common system functionality) are obviously difficult to harmonize. The object of the present invention is to overcome this difficulty.
According to its main aspect, the present invention provides a receiver/decoder for a digital television system, comprising: means for receiving a compressed MPEG-type signal; means for decoding the received signal to provide a television signal; means for supplying the television signal to a television; a user input interface; and a computer system for controlling the receiver/decoder in accordance with input signals received through the user input interface, the computer system comprising: device manager means for receiving signals from a plurality of ports and providing data to said ports; and virtual machine means, coupled to the device manager means, comprising means for processing data received from the device manager means and returning data thereto.
Preferably the virtual machine means comprise an operating engine, a library of routines, an interpreter, storage means for storing a plurality of instruction sequences, queue management means, and buffer management means.
Preferably, the receiver/decoder further comprises a plurality of interfaces for coupling to external units, said device manager means comprising at least one device means associated with either at least one interface or with at least one function of the receiver/decoder. Preferably also the device manager means include at least one device means coupled to at least one device driver.
Preferably the receiver/decoder includes a plurality of application sources each for providing an application for controlling the receiver/decoder and/or the television, and wherein the operating engine is located between the application sources and the logical device means, and includes queue means for receiving events generated through the device manager means and passing them to the engine. Preferably the operating engine comprises a plurality of process sequencer units associated with the device means, and means for extracting events from the queue means and actuating the associated process sequencer units accordingly. Preferably also there are filter means for matching an event against a list of event types before entering the event in the queue means. Preferably also the receiver/decoder further includes means for storing at least one application.
A further aspect of the present invention provides a receiver/decoder for receiving broadcast signals, said receiver/decoder comprising: means for controlling the receiver/decoder in accordance with received signals, said controlling means comprising: means for receiving signals from a plurality of ports and providing data to said ports; and virtual machine means for processing data received from the receiving means and returning data thereto.
Another aspect of the present invention comprises a system comprising a plurality of receiver/decoders each as described above, wherein the different receiver/decoders have a common virtual machine means and respective different device manager means coupled to respective different circuitry.
Preferred features of the present invention will now be described, purely by way of example, with reference to the accompanying drawings, in which:-
Figure 1 shows the overall architecture of a digital television system according to the preferred embodiment of the present invention;
Figure 2 shows the architecture of an interactive system of the digital television system;
Figure 3 shows the arrangement of files within a module downloaded into the memory of an interactive receiver/decoder;
Figure 4 is a schematic diagram of interfaces of the receiver/decoder; Figure 5 shows the arrangement of memory volumes of the memory of the interactive receiver/decoder;
Figure 6 is a functional block diagram of the- receiver/decoder; and
Figure 7 shows certain components of the virtual machine and run time engine in more detail.
An overview of a digital television system 1000 is shown in Figure 1. The invention includes a mostly conventional digital television system 2000 which uses the known MPEG-2 compression system to transmit compressed digital signals. In more detail, MPEG-2 compressor 2002 in a broadcast centre receives a digital signal stream (typically a stream of video signals). The compressor 2002 is connected to a multiplexer and scrambler 2004 by linkage 2006. The multiplexer 2004 receives a plurality of further input signals, assembles one or more transport streams and transmits compressed digital signals to a transmitter 2008 of the broadcast centre via linkage 2010, which can of course take a wide variety of forms including telecom links. The transmitter 2008 transmits electromagnetic signals via uplink 2012 towards a satellite transponder 2014, where they are electronically processed and broadcast via notional downlink 2016 to earth receiver 2018, conventionally in the form of a dish owned or rented by the end user. The signals received by receiver 2018 are transmitted to an integrated receiver/decoder 2020 owned or rented by the end user and connected to the end user's television set 2022. The receiver/decoder 2020. decodes the compressed MPEG-2 signal into a television signal for the television set 2022.
A conditional access system 3000 is connected to the multiplexer 2004 and the receiver/decoder 2020, and is located partly in the broadcast centre and partly in the decoder. It enables the end user to access digital television broadcasts from one or more broadcast suppliers. A smartcard, capable of deciphering messages relating to commercial offers (that is, one or several television programmes sold by the broadcast supplier), can be inserted into the receiver/decoder 2020. Using the decoder 2020 and smartcard, the end user may purchase commercial offers in either a subscription mode or a pay-per-view mode.
An interactive system 4000, also connected to the multiplexer 2004 and the receiver/decoder 2020 and again located partly in the broadcast centre and partly in the decoder, enables the end user to interact with various applications via a modemmed back channel 4002.
Figure 2 shows the general architecture of the interactive television system 4000 of the digital television system 1000 of the present invention.
For example, the interactive system 4000 allows an end user to buy items from on- screen catalogues, consult local news and weather maps on demand and play games through his television set.
The interactive system 4000 comprises in overview four main elements: an authoring tool 4004 at the broadcast centre (or elsewhere) for enabling a broadcast supplier to create, develop, debug and test applications; an application and data server 4006 the broadcast centre, connected to the authoring tool 4004 for enabling a broadcast supplier to prepare, authenticate and format applications and data for delivery to the multiplexer and scrambler 2004 for insertion into the MPEG-2 transport stream (typically the private section thereof) to be broadcast to the end user; a virtual machine including a run time engine (RTE) 4008, which is an executable code installed in the receiver/decoder 2020 owned or rented by the end user for enabling an end user to receive, authenticate, decompress, and load applications into the working memory 2024 of the receiver/decoder 2020 for execution. The engine 4008 also runs resident, general-purpose applications. The engine 4008 is independent of the hardware and operating system; and a modemmed back channel 4002 between the receiver/decoder 2020 and the application and data server 4006 to enable signals instructing the server 4006 to insert data and applications into the MPEG-2 transport stream at the request of the end user. The interactive television system operates using "applications" which control the functions of the receiver/decoder and various devices contained therein. Applications are represented in the engine 4008 as "resource files". A "module" is a set of resource files and data. Several modules may be required to make up an application. A "memory volume" of the receiver/decoder is a storage space for modules. An "interface" is used to download modules. Modules may be downloaded into the receiver/decode 2020 from the MPEG-2 transport stream.
The elements mentioned in the previous paragraph are now described in more detail.
For the purposes of this specification, an application is a piece of computer code for controlling high level functions of preferably the receiver/decoder 2020. For example, when the end user positions the focus of a remote controller on a button object seen on the screen of the television set 2022 and presses a validation key, the instruction sequence associated with the button is run.
An interactive application proposes menus and executes commands at the request of the end user and provides data related to the purpose of the application. Applications may be either resident applications, that is, stored in the ROM (or FLASH or other non-volatile memory) of the receiver/decoder 2020, or broadcast and downloaded into the RAM or FLASH memory of the receiver/decoder 2020.
Examples of applications are:- • An Initiating Application. The receiver/decoder 2020 is equipped with a resident initiating application which is an adaptable collection of modules (this term being defined in more detail hereunder) enabling the receiver/decoder
2020 to be immediately operative in the MPEG-2 environment. The application provides core features which can be modified by the broadcast supplier if required. It also provides an interface between the resident application and downloaded applications.
• A Startup Application. The startup application allows any application, either downloaded or resident, to run on the receiver/decoder 2020. This application acts as a bootstrap executed on arrival of a service in order to start the application. Startup is downloaded into RAM and therefore can be updated easily. It can be configured so that 'the interactive applications available on each channel can be selected and run, either immediately after downloading or after preloading. In the case of preloading, the application is loaded into the memory 2024 and is activated by the startup when required.
• A Program Guide. The Program Guide is an interactive application which gives full information about programming. For example, it may give information about, say, one week's television programmes provided on each channel of a digital television bouquet. By depressing a key on the remote controller 2026, the end user accesses an add-on screen, overlaid on the event shown on the screen of the television set 2022. This add-on screen is a browser giving information on the current and next events of each channel of the digital TV bouquet. By depressing another key on the remote controller
2026, the end user accesses an application which displays a list of information on events over one week. The end user can also search and sort events with simple and customised criteria. The end user can also access directly a selected channel. • A Pay Per Niew application. The Pay Per View Application is an interactive service available on each PPN channel of the digital TV bouquet in conjunction with the conditional access system 3000. The end user can access the application using a TV guide or channel browser. Additionally, the application starts automatically as soon as a PPV event is detected on the PPV channel. The end user is then able to buy the current event either through his daughter smartcard 3020 or via the communication server 3022 (using a modem, a telephone and DTMF codes, MIΝITEL or the like). The application may be either resident in the ROM of the receiver/decoder 2020 or downloadable into the RAM of the decoder 2020. • A PC Download application. On request, an end user can download computer software using the PC download application.
• A Magazine Browser application. The magazine browser application comprises a cyclic video broadcast of images with end user navigation via on-screen buttons.
• A Quiz application. The quiz application is preferably synchronised with a broadcast quiz programme. As an example, multiple choice questions are displayed on the screen of the television 2022, and the user can select an answer using the remote controller 2026. The quiz application can inform the user whether the answer is correct or not, and can keep count of the user's score.
• A Teleshopping application. In one example of the teleshopping application, offers of goods for sale are transmitted to the receiver/decoder 2020 and displayed on the television 2022. Using the remote controller, the user can select a particular item to buy. The order for the item is sent via the modemmed back channel 4002 to the application and data server 4006 or to a separate sales system the telephone number of which has been downloaded to the receiver/decoder, possibly with an order to debit the account for a credit card which has been inserted into one of the card readers 4036 of the receiver/decoder 2020.
• A Telebanking application. In one example of the telebanking application, the user inserts a bank card into one of the card readers 4036 of the receiver/decoder 2020. The receiver/decoder 2020 dials up the user's bank, using a telephone number stored in the bank card or stored in the receiver/decoder, and then the application provides a number of facilities which can be selected using the remote controller 2026, for example for downloading via the telephone line a statement of account, transferring funds between accounts, requesting a cheque book, etc.
• An Internet Browser application. In one example of the Internet browser application, instructions from the user, such as a request to view a web page having a particular URL, are entered using the remote controller 2026, and these are sent by the modemmed back channel 4002 to the application and data server 4006. The appropriate web page is then included in the transmissions from the broadcast centre, received by the receiver/decoder 2020 via the uplink 2012, transponder 2014 and downlink 2016, and displayed on the television 2022.
Applications are stored in memory locations in the receiver/decoder 2020 and represented as resource files. The resource files comprise graphic object description unit files, variables block unit files, instruction sequence files, application files and data files.
The graphic object description unit files describe the screens, the man-machine interface of the application. The variables block unit files describe the data structures handled by the application. The instruction sequence files describe the processing operations of the applications. The application files provide the entry points for the applications.
The applications constituted in this way can use data files, such as icon library files, image files, character font files, colour table files and ASCII text files. An interactive application can also obtain on-line data by effecting inputs and/or outputs.
The engine 4008 only loads into its memory those resource files it needs at a given time. These resource files are read from the graphic object description unit, instruction sequence and application files; variables block unit files are stored in memory following a call to procedure for loading modules and remain locked there until a specific call to a procedure for unloading modules is made.
With reference to Figure 3, a module 4010, such as a tele-shopping module, is a set of resource files and data comprising the following: a single application file 4012; an undetermined number of graphic object description unit files 4014; an undetermined number of variables block unit files 4016; an undetermined number of instruction sequence files 4018; and where appropriate, data files 4020 such as icon library files, image files, character font files, colour table files and ASCII text files. In the MPEG data stream, each module comprises a group of MPEG tables. Each MPEG table may be formatted as a number of sections. In the MPEG data stream, each section has a "size" of up to 4 kbytes. For data transfer via the serial and parallel port, for example, modules similarly are split into tables and sections, the size of the section varying with the transport medium.
Modules are transported in the MPEG data stream in the form of data packets of typically 188 bytes within respective types of data stream, for example, video data streams, audio data streams and teletext data streams. Each packet is preceded by a Packet Identifier (PID) of 13 bits, one PID for every packet transported in the MPEG data stream. A programme map table, (PMT table) contains a list of the different data streams and defines the contents of each data stream according to the respective PID. A PID may alert a device to the presence of applications in the data stream, the PID being identified using the PMT table.
With reference to Figure 4, the receiver/decoder 2020 includes several interfaces; specifically, a tuner 4028 for the MPEG signal flow, a serial interface 4030, a parallel interface 4032, and two card readers 4036, one for a smartcard forming part of the system and one for bank cards (used for making payments, home banking, etc). The receiver/decoder also includes an interface 4034 to a modemmed back channel 4002 to the television signal producer, so that the user can indicate preferences, etc back to the television signal (programme) producer.
A memory volume is a storage space for modules 4010. Such storage spaces are located in the memory 2024 of the receiver/decoder 2020. With reference to Figure 5, the memory 2024 is divided into a RAM volume 4022, FLASH volume 4024, and ROM volume 4026, but this physical organization is distinct from the logical organization. The memory may further be divided into memory volumes associated with the various interfaces through which modules are downloaded into the receiver/decoder 2020, for example an MPEG volume for storing modules downloaded from the MPEG bitstream and a serial volume for storing modules received via a serial interface. From one point of view, the memory can be regarded as part of the hardware; from another point of view, the memory can be regarded as supporting or containing the whole of the system shown apart from the hardware.
It is expected that the receiver/decoder may be designed and manufactured by various different manufacturers. It may therefore have various different hardware designs, though they will of course all conform to the same functional specification. It is therefore important that a given application behaves in the same way on every receiver/decoder, and that a receiver/decoder should execute all applications in the same, correct manner.
The system can be regarded a centred on a run time engine 4008 forming part of a virtual machine 4007. This is coupled to applications on one side (the "high level" side), and, on the other side (the "low level" side), via various intermediate logical units discussed below, to the receiver/decoder hardware 4061. The receiver/decoder hardware can be regarded as including the various ports or interfaces as discussed above (the interface 2030 for the handset 2026, the MPEG stream interface 4028, the serial interface 4030, the parallel interface 4032, the interfaces to the card readers 4036, and the interface 4034 to the modemmed back channel 4002).
With reference to Figure 6, various applications 4057 are coupled to the unit 4007; some of the more commonly used applications may be more or less permanently resident in the system, as indicated at 4057, while others will be downloaded into the system, eg from the MPEG data stream or from other ports as required.
The unit 4007 includes, in addition to the run time engine 4008, some resident library functions 4006 which include a toolbox 4058. The library contains miscellaneous functions in C language used by the engine 4008. These include data manipulation such as compression, expansion or comparison of data structures, line drawing, etc. The library 4006 also includes information about firmware 4060 in the receiver/decoder 2020, such as hardware and software version numbers and available RAM space, and a function used when downloading a new device 4062. Functions can be downloaded into the library, being stored in Flash or RAM memory. The run time engine 4008 is coupled to a device manager 4068 which is coupled to a set of devices 4064 which are coupled to device drivers 4060 which are in turn coupled to the ports or interfaces. In broad terms, a device driver can be regarded as defining a logical interface, so that two different device drivers may be coupled to a common physical port. A device driver will normally be coupled to more than one device driver; if a device is coupled to a single device driver, the device will normally be designed to incorporate the full functionality required for communication, so that the need for a separate device driver is obviated. Certain devices may communicate among themselves.
As will be described below, there are 3 forms of communication from the devices 4064 up to the run time engine: by means of variables, buffers, and events which are passed to a set of event queues.
In terms of the designers or providers of these various functions, the applications will be generated by various service (programme) providers. The run time engine will be designed and provided by the system authority or designer. The device manager, the devices, and the device drivers will be provided by the receiver/decoder manufacturer (hardware provider). It will however be realized that this correspondence between the various levels of the receiver/decoder and the three levels of providers will not normally be precise. For example, the system authority will also in practice normally provide some of the applications, the receiver/decoder manufacturer may be involved in the logical device design, and so on.
Each function of the receiver/decoder 2020 is represented as a device 4062. Devices can be either local or remote. Local devices 4064 include smartcards, SCART connector signals, modems, serial and parallel interfaces, a MPEG video and audio player and an MPEG section and table extractor. Remote devices 4066, executed in a remote location, differ from local devices in that a port and procedure must be defined by the system authority or designer, rather than by a device and device driver provided and designed by the receiver/decoder manufacturer. When a new device 4062 is created, it can be installed in existing receiver/decoders 2020 by downloading the relevant application 4056 from the broadcast centre. This downloading is performed in the receiver/decoder 2020 by an application 4056 which checks the hardware and software versions and, if correct, loads the software module representing the new device 4062 and asks a procedure of the library 4006 to install the new device code within the firmware (in Flash memory). This can provide a flexible and secure installation of new functions within the receiver/decoder 2020 without affecting the rest of the software.
The device manager 4068 is a common software interface between the application 4056 and the specific functions of the receiver/decoder 2020. The device manager 4068 controls access to devices 4062, declares receipt of an unexpected event, and manages shared memory.
The run time engine 4008 runs under the control of the microprocessor and a common application programming interface. They are installed in every receiver/decoder 2020 so that all receiver/decoders 2020 are identical from the application point of view.
The engine 4008 runs applications 4056 on the receiver/decoder 2020. It executes interactive applications 4056 and receives events from outside the receiver/decoder 2020, displays graphics and text, calls devices for services and uses functions of the library 4006 connected to the engine 4008 for specific computation.
The run time engine 4008 is an executable code installed in each receiver/decoder 2020, and includes an interpreter for interpreting and running applications. The engine 4008 is adaptable to any operating system, including a single task operating system (such as MS-DOS). The engine 4008 is based on process sequencer units (which take various events such as a key press, to carry out various actions), and contains its own scheduler to manage event queues from the different hardware interfaces. It also handles the display of graphics and text. A process sequencer unit comprises a set of action-groups. Each event causes the process sequencer unit to move from its current action-group to another action-group in dependence on the character of the event, and to execute the actions of the new action-group.
As noted above, a logical channel is distinct from a physical port, so that there can for example be two different kinds of logical channel using the same physical port. Events on those two logical channels will be passed to respective different process sequencer units. In addition, there can be two distinct logical channels of the same type using a physical port. In that case, each of the two channels will of course require its own process sequencer unit, so two instances (instantiations) of the same process sequencer unit will be created.
The engine 4008 comprises a code loader to load and download applications 4056 into the receiver/decoder memory 2028. Only the necessary code is loaded into the RAM or Flash memory, in order to ensure optimal use. The downloaded data is verified by an authentication mechanism to prevent any modification of an application 4056 or the execution of any unauthorized application. The engine 4008 further comprises a decompressor. As the application code (a form of intermediate code) is compressed for space saving and fast downloading from the MPEG-2 transport stream or via a built-in receiver/decoder mode, the code must be decompressed before loading it into the RAM. The engine 4008 also comprises an interpreter to interpret the application code to update various variable values and determine status changes, and an error checker.
The main loop of the engine 4008 extracts events from the queue means and actuates the associated process sequencer units accordingly. At every traverse of the main loop, a procedure is called up to receive external events (such as pressure on one of the remote control keys, reception of an MPEG-2 section or a message on a serial port) from the event interface. All events, whether input to the presentation function (discussed below) or received through an interface, pass through an event interface before being processed by the engine 4008. For each detected event, the procedure comprises a message, called an "event", which is put into one of 5 queues of the engine 4008, with respective priority levels 0 to 4. After the call to the event interface, which fills the queues with events, the engine 4008 searches the queues in order of decreasing priority (from level 4 to level 0) for an event. The event so found is removed from the queue and used to actuate the process sequencer unit for which it is intended.
Before using the services of any device 4062, a program (such as an application instruction sequence) has to be declared as a "client", that is, a logical access-way to the device 4066 or the device manager 4068. The manager gives the client a client number which is referred to in all accesses to the device. A device 4066 can have several clients, the number of clients for each device 4066 being specified depending on the type of device 4066. A client is introduced to the device 4066 by a procedure "Device: Open Channel". This procedure assigns a client number to the client. A client can be taken out of the device manager 4068 client list by a procedure "Device: Close Channel".
The access to devices 4062 provided by the device manager 4068 can be either synchronous or asynchronous. For synchronous access, a procedure "Device: Call" is used. This is a means of accessing data which is immediately available or a functionality which does not involve waiting for the desired response. For asynchronous access, a procedure "Device: I/O" is used. This is a means of accessing data which involves waiting for a response, for example scanning tuner frequencies to find a multiplex or getting back a table from the MPEG stream. When the requested result is available, an event is put in the queue of the engine to signal its arrival. A further procedure "Device: Event" provides a means of managing unexpected events.
As noted above, the main loop of the run time engine is coupled to a variety of process sequencer units, and when the main loop encounters an appropriate event, control is temporarily transferred to one of the process sequencer units.
Communication between the run time engine and the applications is also performed largely via two types of process sequencer units, graphic object description unit process sequencer units and an instruction sequence process sequencer unit. The essentials of the operation of the process sequencer units can best be described by considering the operation of the graphic object description unit and instruction sequence process sequencer units; the operation of the other process sequencer units is similar. The graphic object description .unit process sequencer units manage the man-machine interface, and the instruction sequence process sequencer unit executes instruction sequences in response to instruction sequence execution requests received from the graphic object description unit process sequencer unit. (An instruction sequence is a sequence of decompressed intermediate code commands.)
A presentation function communicating with the engine 4008 administers the presentation of text and graphics to the end user, and the presentation of end user actions to the engine 4008. The text and graphics are overlaid on the display on the television set 2022, and the user may interact with the application 4056 by means of a keyboard (using that term to include the remote controller 2026).
A graphic object description unit process sequencer unit receives query events from the television screen of the end user, and processes such a query by starting to read the corresponding interface file 4014. It then uses the graphic functions of the interface to trace the graphic object on the screen of the television set 2022. The end user can use the four arrow keys of the remote control 2026 to move around the graphic object. Every time that a key is pressed, an event is processed by the graphic object description unit process sequencer unit. When the user validates a choice using the VALID key on the remote control 2026, the code of the event is processed by the graphic object description unit process sequencer unit, which generates events requesting instruction sequences to be run and sends them to the instruction sequence process sequencer unit.
When the instruction sequence process sequencer unit receives a instruction sequence execution request from the graphic object description unit process sequencer unit, it reads the corresponding instruction sequence file 4018 and loads it entirely into memory. It then starts running the instruction sequence and continues until the instruction sequence is finished or until it encounters a function called rerouting. When the instruction sequence is finished, the system returns to cycle through the main loop for acquiring events and rescheduling.
There are also several downloading process sequencer units whose function is to process the various protocols linked to the different volumes containing applications 4056.
Referring to Fig. 7, the device manager includes a queue 100 into which events from the devices are passed for temporary storage. At suitable intervals, the virtual machine sends a signal to this queue to extract the first item from it. This event item is moved to a queue structure 101 in the virtual machine. Depending on the priority level of the event item, it is inserted into the appropriate one of the 5 queues 0 to 4. Event items are extracted from the queue structure 101 by a queue selector unit 102 under the control of the run time engine.
When an event is selected from the queue structure 101, it is passed to a process sequencer unit engine 104, which consists of a process sequencer unit driver 105 and a set of process sequencer units 106. Each process sequencer unit is a set of action- groups linked together, so that each step from one action-group to the next action- group is, in general, dependent on the current action-group and the nature of the event. Different process sequencer units have different sizes and complexities, including one in which the "next" action-group, ie the action-group to which the system steps on in response to an event, is dependent solely on the nature of the event but is independent of the current action-group. Also, as is shown at the right-hand side of the process sequencer units block, there may be several copies of a process sequencer unit, ie several identical process sequencer units, to deal eg with several separate data streams using identical protocols through a single port.
When an event is selected, it is passed to the appropriate process sequencer unit. This selects the appropriate outlet from the current action-group on the process sequencer unit. This results in the appropriate next action-group being selected and the actions in that action-group being performed, involving eg the sending of a message to the device manager or the execution of a instruction sequence. Action- groups in the process sequencer unit can also send event messages to other process sequencer units.
If a instruction sequence is selected, the identification of the instruction sequence is sent to a instruction sequence selector 107. This obtains the desired instruction sequence from a instruction sequence memory 108 and passes it to a instruction sequence interpreter 109, which executes the instruction sequence.
The system also includes a filter 110, which is loaded with event types eg from the process sequencer units 106. When an event item is passed from the queue 100 in the device manager to the queue structure 101 in the virtual machine, its type or character is matched against the list in the filter 110, and if it is of a type which is not recognized, it is rejected. This ensures that if say the device manager or the keyboard generates events of a type which the virtual machine cannot deal with, those events are not passed to the queue structure 101. (If events of this kind were passed to the queue structure 101, either they would accumulate in that queue structure or they might cause malfunctioning of the process sequencer unit engine 104.)
It will be understood that the present invention has been described above purely by way of example, and modifications of detail can be made within the scope of the invention.
Each feature disclosed in the description, and (where appropriate) the claims and drawings may be provided independently or in any appropriate combination.
In the aforementioned preferred embodiments, certain features of the present invention have been implemented using computer software. However, it will of course be clear to the skilled man that any of these features may be implemented using hardware. Furthermore, it will be readily understood that the functions performed by the hardware, the computer software, and such like are performed on or using electrical and like signals. Cross reference is made to our co-pending applications, all bearing the same filing date, and entitled Signal Generation and Broadcasting (Attorney Reference no. PC/ASB/19707), Smartcard for use with a Receiver of Encrypted Broadcast Signals, and Receiver (Attorney Reference No. PC/ASB/19708), Broadcast and Reception System and Conditional Access System therefor (Attorney Reference No. PC/ASB/19710), Downloading a Computer File from a Transmitter via a Receiver/Decoder to a Computer (Attorney Reference No. PC/ASB/19711), Transmission and Reception of Television Programmes and Other Data (Attorney Reference No. PC/ASB/19712), Downloading Data (Attorney Reference No. PC/ASB/19713), Computer Memory Organisation (Attorney Reference No. PC/ASB/19714), Television or Radio Control System Development (Attorney Reference No. PC/ASB/19715), Extracting Data Sections from a Transmitted Data Stream (Attorney Reference No. PC/ASB/19716), Access Control System (Attorney reference No. PC/ASB/19717), Data Processing System (Attorney Reference No. PC/ASB/19718), and Broadcast and Reception System, and Receiver/Decoder and Remote Controller therefor (Attorney Reference No. PC/ASB/19720). The disclosures of these documents are incorporated herein by reference. The list of applications includes the present application.

Claims

1. A receiver/decoder for a digital television system, comprising: means for receiving a compressed MPEG-type signal; means for decoding the received signal to provide a television signal; means for supplying the television signal to a television; a user input interface; and a computer system for controlling the receiver/decoder in accordance with input signals received through the user input ' interface, the computer system comprising: device manager means for receiving signals from a plurality of ports and providing data to said ports; and virtual machine means, coupled to the device manager means, comprising means for processing data received from the device manager means and returning data thereto.
2. A receiver/decoder according to claim 1 wherein the virtual machine means comprise an operating engine, a library of routines, an interpreter, storage means for storing a plurality of instruction sequences, queue management means, and buffer management means.
3. A receiver/decoder according to claim 1 or 2, further comprising: a plurality of interfaces for coupling to external units; said device manager means comprising at least one device means associated with either at least one interface or with at least one function of the receiver/decoder.
4. A receiver/decoder according to claim 3 wherein at least one of said device means coupled to at least one device driver.
5. A receiver/decoder according to claim 3 or 4 including a plurality of application sources each for providing an application for controlling the receiver/decoder and/or the television, and wherein the operating engine is located between the application sources and the device means, and includes queue means for receiving events generated through the device manager means and passing them to the engine.
6. A receiver/decoder according to claim 5 wherein the operating engine comprises a plurality of process sequencer units associated with the device means, and means for extracting events from the queue means and actuating the associated process sequencer units accordingly.
7. A receiver/decoder according to either claim 5 or 6 including filter means for matching an event against a list of event types before entering the event in the queue means.
8. A receiver/decoder according to any previous claim, further including means for storing at least one application.
9. A receiver/decoder for receiving broadcast signals, said receiver/decoder comprising: means for controlling the receiver/decoder in accordance with received signals, said controlling means comprising: means for receiving signals from a plurality of ports and providing data to said ports; and virtual machine means for processing data received from the receiving means and returning data thereto.
10. A system comprising a plurality of receiver/decoders each according to any of claims 1 to 8, wherein the different receiver/decoders have a common virtual machine means and respective different device manager means coupled to respective different circuitry.
11. A receiver/decoder substantially as herein described.
12. A system substantially as herein described.
PCT/EP1997/002116 1997-03-21 1997-04-25 Data processing system WO1998043433A1 (en)

Priority Applications (13)

Application Number Priority Date Filing Date Title
PCT/EP1997/002116 WO1998043433A1 (en) 1997-03-21 1997-04-25 Data processing system
BR9714598-0A BR9714598A (en) 1997-03-21 1997-04-25 Data processing systems
CN97182174A CN1254478A (en) 1997-03-21 1997-04-25 Data processing system
NZ500206A NZ500206A (en) 1997-03-21 1997-04-25 MPEG receiver decoder with computer function incorporating virtual machine
AU27709/97A AU740740B2 (en) 1997-03-21 1997-04-25 Data processing system
ZA9703613A ZA973613B (en) 1997-03-21 1997-04-25 Data processing system.
PL97335775A PL183663B1 (en) 1997-03-21 1997-04-25 Data processing system
CA002284011A CA2284011A1 (en) 1997-03-21 1997-04-25 Data processing system
EP97921756A EP0968611A1 (en) 1997-03-21 1997-04-25 Data processing system
JP54476998A JP2001518262A (en) 1997-03-21 1997-04-25 Data processing system
TR1999/02271T TR199902271T2 (en) 1997-03-21 1997-04-25 Data processing system.
IL13194797A IL131947A0 (en) 1997-03-21 1997-04-25 Data processing system
NO994540A NO994540L (en) 1997-03-21 1999-09-17 computing Equipment

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP97400650 1997-03-21
EP97400650.4 1997-03-21
PCT/EP1997/002116 WO1998043433A1 (en) 1997-03-21 1997-04-25 Data processing system

Publications (1)

Publication Number Publication Date
WO1998043433A1 true WO1998043433A1 (en) 1998-10-01

Family

ID=26070211

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP1997/002116 WO1998043433A1 (en) 1997-03-21 1997-04-25 Data processing system

Country Status (13)

Country Link
EP (1) EP0968611A1 (en)
JP (1) JP2001518262A (en)
CN (1) CN1254478A (en)
AU (1) AU740740B2 (en)
BR (1) BR9714598A (en)
CA (1) CA2284011A1 (en)
IL (1) IL131947A0 (en)
NO (1) NO994540L (en)
NZ (1) NZ500206A (en)
PL (1) PL183663B1 (en)
TR (1) TR199902271T2 (en)
WO (1) WO1998043433A1 (en)
ZA (1) ZA973613B (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1067806A1 (en) * 1999-07-09 2001-01-10 CANAL+ Société Anonyme Apparatus for and method of testing applications
FR2809914A1 (en) * 2000-06-06 2001-12-07 Sagem TELEVISION DECODER WITH ASSISTANCE
EP1175058A1 (en) * 2000-07-21 2002-01-23 Alcatel Processor system, and terminal, and network-unit, and method
JP2002506329A (en) * 1998-03-06 2002-02-26 カナル プラス ソシエテ アノニム Multi-media terminal for multiple users
WO2004079536A2 (en) * 2003-03-04 2004-09-16 Gamelogic, Inc. Conditional access system and method
JP2005501484A (en) * 2001-08-21 2005-01-13 カナル プラス テクノロジーズ ソシエテ アノニム Method and apparatus for receiver / decoder
US6966063B1 (en) 1997-07-24 2005-11-15 Thomson Licensing S.A. IEEE set top box device driver
WO2006087482A1 (en) * 2005-02-18 2006-08-24 Tv-Card Data medium and method for assisting in the development of software applications for a chip card of a digital television signal decoder
CN100454964C (en) * 2006-02-28 2009-01-21 中国科学院声学研究所 Method for loading digital TV set top box network interface module
CN102510531A (en) * 2011-10-20 2012-06-20 山东泰信电子有限公司 Method for automatically identifying tuner and demodulator of digital television STB (Set Top Box)
US11029903B2 (en) 2000-11-01 2021-06-08 Flexiworld Technologies, Inc. Output systems, such as television controllers, televisions, display devices, or audio output devices, operable for playing digital content wirelessly received either from a digital content service over the internet or wirelessly received from a client device that is in the same network as the output system
US11096056B2 (en) 2000-11-01 2021-08-17 Flexiworld Technologies, Inc. Output devices, such as televisions, output controllers, or audio output devices, that are setup to wirelessly receive digital content from a digital content service over the internet or from a wireless information apparatus that is in the same network as the output devices
US11204729B2 (en) 2000-11-01 2021-12-21 Flexiworld Technologies, Inc. Internet based digital content services for pervasively providing protected digital content to smart devices based on having subscribed to the digital content service
US11467856B2 (en) 2002-12-12 2022-10-11 Flexiworld Technologies, Inc. Portable USB device for internet access service
US11662918B2 (en) 2002-12-12 2023-05-30 Flexiworld Technologies, Inc. Wireless communication between an integrated circuit memory device and a wireless controller device
US11829776B2 (en) 2002-12-12 2023-11-28 Flexiworld Technologies, Inc. Integrated circuit device that includes a protected memory component for transmitting protected data over a communication interface

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060193337A1 (en) * 2005-02-25 2006-08-31 Toni Paila Device management broadcast operation
CN100420202C (en) * 2005-10-20 2008-09-17 联想(北京)有限公司 Computer management system and computer management method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AKIWUMI-ASSANI O ET AL: "Multi-media terminal architecture", PHILIPS JOURNAL OF RESEARCH, vol. 50, no. 1, 1996, pages 169-184, XP004008209 *
RATH K ET AL: "Set-top box control software: a key component in digital video", PHILIPS JOURNAL OF RESEARCH, vol. 50, no. 1, 1996, pages 185-199, XP004008210 *
WILLIAMS T: "STB OPERATING SYSTEMS GEAR UP FOR FLOOD OF DATA SERVICES", COMPUTER DESIGN, vol. 35, no. 2, 1 February 1996 (1996-02-01), pages 67/68, 72, 74 - 76, 78, 80, XP000555483 *

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6966063B1 (en) 1997-07-24 2005-11-15 Thomson Licensing S.A. IEEE set top box device driver
JP2002506329A (en) * 1998-03-06 2002-02-26 カナル プラス ソシエテ アノニム Multi-media terminal for multiple users
WO2001005162A1 (en) * 1999-07-09 2001-01-18 Canal+ Societe Anonyme Apparatus for and method of testing software applications
EP1067806A1 (en) * 1999-07-09 2001-01-10 CANAL+ Société Anonyme Apparatus for and method of testing applications
FR2809914A1 (en) * 2000-06-06 2001-12-07 Sagem TELEVISION DECODER WITH ASSISTANCE
EP1162835A1 (en) * 2000-06-06 2001-12-12 Sagem SA Digital television decoder with assistance
EP1175058A1 (en) * 2000-07-21 2002-01-23 Alcatel Processor system, and terminal, and network-unit, and method
WO2002009388A1 (en) * 2000-07-21 2002-01-31 Alcatel Processor, system, and terminal, and network-unit, and method
US11029903B2 (en) 2000-11-01 2021-06-08 Flexiworld Technologies, Inc. Output systems, such as television controllers, televisions, display devices, or audio output devices, operable for playing digital content wirelessly received either from a digital content service over the internet or wirelessly received from a client device that is in the same network as the output system
US11416197B2 (en) 2000-11-01 2022-08-16 Flexiworld Technologies, Inc. Wireless controllers connectable to televisions, wireless televisions, wireless output controllers, or wireless output devices for receiving digital content from one or more servers over the internet
US11204729B2 (en) 2000-11-01 2021-12-21 Flexiworld Technologies, Inc. Internet based digital content services for pervasively providing protected digital content to smart devices based on having subscribed to the digital content service
US11096056B2 (en) 2000-11-01 2021-08-17 Flexiworld Technologies, Inc. Output devices, such as televisions, output controllers, or audio output devices, that are setup to wirelessly receive digital content from a digital content service over the internet or from a wireless information apparatus that is in the same network as the output devices
US11169756B2 (en) 2000-11-20 2021-11-09 Flexijet Technologies, Inc. Method for capturing, storing, accessing, and outputting digital content
JP2005501484A (en) * 2001-08-21 2005-01-13 カナル プラス テクノロジーズ ソシエテ アノニム Method and apparatus for receiver / decoder
US11829776B2 (en) 2002-12-12 2023-11-28 Flexiworld Technologies, Inc. Integrated circuit device that includes a protected memory component for transmitting protected data over a communication interface
US11662918B2 (en) 2002-12-12 2023-05-30 Flexiworld Technologies, Inc. Wireless communication between an integrated circuit memory device and a wireless controller device
US11467856B2 (en) 2002-12-12 2022-10-11 Flexiworld Technologies, Inc. Portable USB device for internet access service
US8886565B2 (en) 2003-03-04 2014-11-11 Scientific Games Holdings Limited Conditional access system and method
WO2004079536A2 (en) * 2003-03-04 2004-09-16 Gamelogic, Inc. Conditional access system and method
US8190700B2 (en) 2003-03-04 2012-05-29 Scientific Games Holdings Limited Conditional access system and method
US7610486B2 (en) 2003-03-04 2009-10-27 Gamelogic Inc Conditional access system and method
WO2004079536A3 (en) * 2003-03-04 2004-10-28 Gamelogic Inc Conditional access system and method
FR2882452A1 (en) * 2005-02-18 2006-08-25 Tv Card Soc Par Actions Simpli DATA CARRIER AND SOFTWARE APPLICATION DEVELOPMENT ASSISTANCE METHOD FOR DIGITAL SIGNAL DIGITAL DECODER CHIP CARD
WO2006087482A1 (en) * 2005-02-18 2006-08-24 Tv-Card Data medium and method for assisting in the development of software applications for a chip card of a digital television signal decoder
CN100454964C (en) * 2006-02-28 2009-01-21 中国科学院声学研究所 Method for loading digital TV set top box network interface module
CN102510531A (en) * 2011-10-20 2012-06-20 山东泰信电子有限公司 Method for automatically identifying tuner and demodulator of digital television STB (Set Top Box)

Also Published As

Publication number Publication date
TR199902271T2 (en) 1999-12-21
PL335775A1 (en) 2000-05-22
AU740740B2 (en) 2001-11-15
CA2284011A1 (en) 1998-10-01
NZ500206A (en) 2002-08-28
EP0968611A1 (en) 2000-01-05
CN1254478A (en) 2000-05-24
PL183663B1 (en) 2002-06-28
JP2001518262A (en) 2001-10-09
BR9714598A (en) 2002-08-06
IL131947A0 (en) 2001-03-19
ZA973613B (en) 1998-03-23
NO994540D0 (en) 1999-09-17
AU2770997A (en) 1998-10-20
NO994540L (en) 1999-11-22

Similar Documents

Publication Publication Date Title
US6938166B1 (en) Method of downloading of data to an MPEG receiver/decoder and MPEG transmission system for implementing the same
AU740740B2 (en) Data processing system
CA2284018C (en) Extracting data sections from a transmitted data stream
JP2001518256A5 (en)
US6360195B1 (en) Television or radio control system development
AU742956B2 (en) Television or radio control system development
AU742213B2 (en) Access control system
KR20000076406A (en) Data processing system
EP1067455A1 (en) Running and testing applications
MXPA99008543A (en) Data processing system
AU776683B2 (en) Method of downloading of data to an MPEG receiver/decoder and MPEG transmission system for implementing the same
MXPA99008545A (en) Access control system
CZ331899A3 (en) Data processing system
CZ331799A3 (en) Access control system
MXPA99008546A (en) Extracting data sections from a transmitted data stream
MXPA99008547A (en) Television or radio control system development

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 97182174.7

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH HU IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TM TR TT UA UG US UZ VN YU

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH KE LS MW SD SZ UG AM AZ BY KG KZ MD RU TJ TM AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2284011

Country of ref document: CA

Ref document number: 2284011

Country of ref document: CA

Kind code of ref document: A

Ref document number: 1998 544769

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1019997008510

Country of ref document: KR

Ref document number: PA/a/1999/008543

Country of ref document: MX

Ref document number: PV1999-3318

Country of ref document: CZ

Ref document number: 1999/02271

Country of ref document: TR

WWE Wipo information: entry into national phase

Ref document number: 09381509

Country of ref document: US

Ref document number: 09400317

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 500206

Country of ref document: NZ

Ref document number: 1199900832

Country of ref document: VN

WWE Wipo information: entry into national phase

Ref document number: 1997921756

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1997921756

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: PV1999-3318

Country of ref document: CZ

WWP Wipo information: published in national office

Ref document number: 1019997008510

Country of ref document: KR

WWR Wipo information: refused in national office

Ref document number: 1997921756

Country of ref document: EP

WWR Wipo information: refused in national office

Ref document number: PV1999-3318

Country of ref document: CZ

WWG Wipo information: grant in national office

Ref document number: 1019997008510

Country of ref document: KR

WWW Wipo information: withdrawn in national office

Ref document number: 1997921756

Country of ref document: EP