CA2284011A1 - Data processing system - Google Patents

Data processing system Download PDF

Info

Publication number
CA2284011A1
CA2284011A1 CA002284011A CA2284011A CA2284011A1 CA 2284011 A1 CA2284011 A1 CA 2284011A1 CA 002284011 A CA002284011 A CA 002284011A CA 2284011 A CA2284011 A CA 2284011A CA 2284011 A1 CA2284011 A1 CA 2284011A1
Authority
CA
Canada
Prior art keywords
receiver
decoder
application
television
event
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002284011A
Other languages
French (fr)
Inventor
Jean-Claude Sarfati
Jerome Meric
Christophe Declerck
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canal Plus SA
Original Assignee
Individual
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
Application filed by Individual filed Critical Individual
Publication of CA2284011A1 publication Critical patent/CA2284011A1/en
Abandoned legal-status Critical Current

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

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 itlvention 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 rcceiver/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 sequences 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 multiplexes and scrambler 2004 by linkage 2006. The multiplexes 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 /inks. 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 multiplexes 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 srnartcard, 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 _7_ 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 View application. The Pay Per View Application is an interactive service available on each PPV 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, MINITEL or the like). The application may be either resident in the ROM of the receiverldecoder 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 _. _ _ __ _- T __ _g_ 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.
r 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 _g_ 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 401b;
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.
. ._ __ r _ 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 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 thcrefore 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.
_ _- _ __ ~..~_ _ _ r_ - _ _ 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 ?0 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 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 sequences 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 sequences unit comprises a set of action-groups. Each event causes the process sequences 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 sequences 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 sequences unit, so two instances (instantiations) of the same process sequences 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 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 sequences 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 -ls-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 sequences 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 sequences units, and when the main loop encounters an appropriate event, control is temporarily transferred to one of the process sequences units.
Communication between the run time engine and the applications is also performed largely via two types of process sequences units, graphic object description unit process sequences units and an instruction sequence process sequences unit.

The essentials of the operation of the process sequences units can best be described by considering the operation of the graphic object description unit and instruction sequence process sequences units; the operation of the other process sequences units is similar. The graphic object description.unit process sequences units manage the man-machine interface, and the instruction sequence process sequences unit executes instruction sequences in response to instruction sequence execution requests received from the graphic object description unit process sequences 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 sequences 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 sequences 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 sequences unit, which generates events requesting instruction sequences to be run and sends them to the instruction sequence process sequences unit.
When the instruction sequence process sequences unit receives a instruction sequence execution request from the graphic object description unit process sequences 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.

WO 98!43433 PCT/EP97/OZ116 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 sequences 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 sequences unit engine 104, which consists of a process sequences unit driver 105 and a set of process sequences units 106. Each process sequences 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 sequences 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 sequences units block, there may be several copies of a process sequences unit, ie several identical process sequences 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 sequences unit.
This selects the appropriate outlet from the current action-group on the process sequences 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 sequences unit can also send event messages to other process sequences 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 sequences 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 sequences 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 featuie 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/~-1SB/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 (12)

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 sequences 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.
CA002284011A 1997-03-21 1997-04-25 Data processing system Abandoned CA2284011A1 (en)

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
CA2284011A1 true CA2284011A1 (en) 1998-10-01

Family

ID=26070211

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002284011A Abandoned CA2284011A1 (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)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0893765A1 (en) 1997-07-24 1999-01-27 CANAL+ Société Anonyme IEEE 1394 Set Top Box device driver
EP0944257A1 (en) * 1998-03-06 1999-09-22 CANAL+ Société Anonyme Multimedia terminal adapted for multiple users
EP1067806A1 (en) * 1999-07-09 2001-01-10 CANAL+ Société Anonyme Apparatus for and method of testing applications
FR2809914B1 (en) * 2000-06-06 2003-01-24 Sagem TELEVISION DECODER WITH ASSISTANCE
EP1175058A1 (en) * 2000-07-21 2002-01-23 Alcatel Processor system, and terminal, and network-unit, and method
US7805720B2 (en) 2003-04-11 2010-09-28 Flexiworld Technologies, Inc. Autorun for integrated circuit memory component
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
US20020078101A1 (en) 2000-11-20 2002-06-20 Chang William Ho Mobile and pervasive output client device
US20020097418A1 (en) 2001-01-19 2002-07-25 Chang William Ho Raster image processor and processing method for universal data output
EP1304871A3 (en) * 2001-08-21 2003-06-18 Canal+ Technologies Société Anonyme Method and apparatus for a receiver/decoder
AU2003300880A1 (en) 2002-12-12 2004-07-09 Flexiworld Technologies, Inc. Wireless communication between computing devices
CA2518075C (en) 2003-03-04 2014-04-01 Gamelogic Inc. Conditional access system and method
FR2882452B1 (en) * 2005-02-18 2007-06-15 Tv Card Soc Par Actions Simpli DATA CARRIER AND SOFTWARE APPLICATION DEVELOPMENT ASSISTANCE METHOD FOR DIGITAL SIGNAL DIGITAL DECODER CHIP CARD
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
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
ZA973613B (en) 1998-03-23
NZ500206A (en) 2002-08-28
EP0968611A1 (en) 2000-01-05
NO994540L (en) 1999-11-22
PL335775A1 (en) 2000-05-22
IL131947A0 (en) 2001-03-19
BR9714598A (en) 2002-08-06
NO994540D0 (en) 1999-09-17
PL183663B1 (en) 2002-06-28
JP2001518262A (en) 2001-10-09
TR199902271T2 (en) 1999-12-21
AU2770997A (en) 1998-10-20
WO1998043433A1 (en) 1998-10-01
CN1254478A (en) 2000-05-24
AU740740B2 (en) 2001-11-15

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
NZ500200A (en) Transmission and reception of television programmes and other data which enables an "armchair" shopper to be performed with a little modification to existing equipment for receiving television programmes
EP1194847A2 (en) Running and testing applications
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
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
CZ331599A3 (en) Development and testing process of supervisory program

Legal Events

Date Code Title Description
EEER Examination request
FZDE Discontinued
FZDE Discontinued

Effective date: 20040426