AU742067B2 - Extracting data sections from a transmitted data stream - Google Patents

Extracting data sections from a transmitted data stream Download PDF

Info

Publication number
AU742067B2
AU742067B2 AU27708/97A AU2770897A AU742067B2 AU 742067 B2 AU742067 B2 AU 742067B2 AU 27708/97 A AU27708/97 A AU 27708/97A AU 2770897 A AU2770897 A AU 2770897A AU 742067 B2 AU742067 B2 AU 742067B2
Authority
AU
Australia
Prior art keywords
section
sections
stored
group
filtering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
AU27708/97A
Other versions
AU2770897A (en
Inventor
Christophe Declerck
Jerome Meric
Jean-Claude Sarfati
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.)
Thomson Licensing SAS
Original Assignee
Canal Plus SA
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 Canal Plus SA filed Critical Canal Plus SA
Publication of AU2770897A publication Critical patent/AU2770897A/en
Application granted granted Critical
Publication of AU742067B2 publication Critical patent/AU742067B2/en
Assigned to CANAL + TECHNOLOGIES reassignment CANAL + TECHNOLOGIES Alteration of Name(s) in Register under S187 Assignors: CANAL+ SOCIETE ANONYME
Assigned to THOMSON LICENSING S.A. reassignment THOMSON LICENSING S.A. Alteration of Name(s) in Register under S187 Assignors: CANAL + TECHNOLOGIES
Anticipated expiration legal-status Critical
Expired legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • 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
    • 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/04Payment circuits
    • 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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • 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
    • 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/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
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4348Demultiplexing of additional data and video streams
    • H04N21/4349Demultiplexing of additional data and video streams by extracting from data carousels, e.g. extraction of software modules from a DVB carousel
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4435Memory management
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/454Content or additional data filtering, e.g. blocking advertisements
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • 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/47End-user applications
    • H04N21/482End-user interface for program selection
    • 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
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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
    • H04N21/42676Internal components of the client ; Characteristics thereof for modulating an analogue carrier signal to encode digital information or demodulating it to decode digital information, e.g. ADSL or cable modem
    • 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
    • H04N21/42684Client identification by a unique number or address, e.g. serial number, MAC address, socket ID
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4437Implementing a Virtual Machine [VM]
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47211End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting pay-per-view content
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/47805Electronic banking
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/47815Electronic shopping
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4782Web browsing, e.g. WebTV

Description

EXTRACTING DATA SECTIONS FROM A TRANSMITTED DATA STREAM Field of the Invention The present invention relates to an apparatus for and a method of storing one or more sections of a transmitted data stream such as an MPEG bitstream containing video and audio television data in addition to the sections of data.
Background 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.
One way of doing this 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 15 application. In this way, more variety may be provided, and applications can be updated e •as required without any action on the part of the user.
In computer systems, particularly systems where the computer system is incorporated in some larger system such as a receiver/decoder for digital television, the amount of memory is often limited. This means that the memory must be organized so 20 that the use of memory space by the various functions required by the system is minimized. In addition, it may also be necessary to minimize the time required to access .e at least some parts of the memory.
Summary of the Invention Accordingly, the present invention is particularly, but not exclusively, concerned with the downloading into the memory of the receiver/decoder only that data specifically required by an application.
In accordance with one aspect of the invention there is disclosed a method of extracting and storing from a transmitted data stream a plurality of sections of data from a group of said sections having at least one common section characteristic, said method comprising the steps of: receiving the data stream; filtering from said data stream one section from said group according to said at least one section characteristic; storing said one section; and [R:\LIBOO]05147.doc:iad repeating steps and to store from said group a selection of the sections successively received after said one section, in a first operational mode a predetermined number of sections following a particular section in said group being stored, whereas in a second operational mode a predetermined number preceding a particular section in said group being stored.
In accordance with another aspect of the present invention there is disclosed apparatus for extracting and storing from a transmitted data stream a plurality of sections of data from a group of said sections having at least one common section characteristic, said apparatus comprising: l0 means for receiving the data stream; means for filtering from said data stream one section from said group according to said at least one section characteristic; and 0 o0 .means for storing said one section; :oo said filtering means and storage means being arranged to store from said group a 1is selection of the sections successively received after said one section, in a first operational mode a predetermined number of sections following a chosen section in said group being stored, whereas in a second operational mode a predetermined number preceding a chosen section in said group being stored.
According to another aspect of the invention there is disclosed apparatus for 20 extracting and storing from a transmitted data stream a plurality of sections of data from a 0group of said sections having at least one common section characteristic, said apparatus 0 g comprising: S°a receiver for receiving the data stream; a filter for filtering from said data stream one section from said group according to said at least one section characteristic; and a memory for storing said one section; said filter and memory being arranged to store from said group a selection of the sections successively received after said one section, in a first operational mode a predetermined number of sections following a chosen section in said group being stored, whereas in a second operational mode a predetermined number preceding a chosen section in said group being stored.
In a preferred embodiment, the filtering step comprises the steps of: specifying at least one filtering characteristic, each characteristic comprising a Rfiltering criterion and a value for that criterion; [R:\LIBOO]05147.doc:iad comparing the or each section characteristic with a respective filtering characteristic; and filtering said one section from said data stream when the or each section characteristic corresponds to the respective filtering characteristic.
Preferably, this method further comprises the step of: specifying at least one data filtering characteristic, each data filtering characteristic comprising a data filtering criterion and a value for that data filtering criterion; comparing data stored in each stored section with a respective data filtering characteristic; and enabling said stored section to be replaced in said memory when said data stored in that stored section does not correspond with the respective data filtering characteristic.
Preferably, the method further comprises the step of supplying a section oeoo identification signal to an application when said data stored in said stored section corresponds to said respective data filtering characteristic.
The section identification signal preferably comprises the storage address of said one section.
By example, when viewing a list of, say, three television programmes scheduled for transmission at a particular time, by means of one embodiment of the invention only ooeo 20 the first four sections of the group are downloaded from the data stream, enabling an end user quickly to scroll down the list, starting from the first programme shown at that time.
By means of another embodiment of the invention, only the last four sections of the group are downloaded from the data stream, enabling the end user to scroll quickly up the list, starting from the last programme shown at that time and allowing the memory of the receiver/decoder to be minimised.
Preferably, said filtering means comprises: means for specifying at least one filtering characteristic, each characteristic comprising a filtering criterion and a value for that filtering criterion; means for comparing the or each one section characteristic with a respective filtering characteristic; and means for filtering said one section from said data stream when the or each section characteristic corresponds to the respective filtering characteristic.
Probably, the apparatus further comprises: 147.doc:iad -4means for specifying at least one data filtering characteristic, each data filtering characteristic comprising a data filtering criterion and a value for that data filtering criterion; means for comparing data stored in each stored section with a respective data filtering characteristic; and means for enabling said stored section to be replaced in said memory when said data stored in that stored section does not correspond with the respective data filtering characteristic.
The apparatus may also comprise: lo means for supplying a section identification signal to an application when said data stored in said stored section corresponds to said respective data filtering *characteristic.
ooo The above method or apparatus may be used with such a data stream in the form of an MPEG bitstream which also includes video and audio television data in addition to S is said sections.
:Brief Description of the Drawings o* 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 20 the preferred embodiment of the present invention; Figure 2 shows the architecture of an interactive system of the digital television So system; ~Figure 3 shows the arrangement of files within a module downloaded into the memory of an interactive receiver/decoder; Figure 4 shows the arrangement of a section; Figure 5 shows the arrangement of memory volumes of the memory of the interactive receiver/decoder; Figure 6 is a schematic diagram of interfaces of the receiver/decoder; Figure 7 shows the architecture of the software in the receiver/decoder; Figure 8 shows the architecture of a receiver system for downloading sections from an MPEG data stream; Figure 9 shows the arrangement of bytes in a section which are used by a hardware prefilter: SFigure 10 shows an example of a hardware filter mask array and a hardware filter value array of a hardware filter; [R:\LIBOO]05147.doc:iad Figure 11 shows the arrangement of bytes in a section which are used by a software prefilter; Figure 12 shows an example of the loading of a table; Figure 13 shows an example of an arrangement of sections in a group of sections; Figure 14 shows an example of a following mode download of a group of sections; Figure 15 shows an example of a preceding mode download of a group of sections; Figure 16 shows the arrangement of fields in a descriptor of a group of sections; and Figure 17 shows the arrangement of fields in a descriptor of a table of sections.
Detailed Description An overview of a digital television system 1000 is shown in Figure 1. The 15 preferred embodiment of the present 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 2022 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 20 multiplexer 2004 receives a plurality of further input signals, assembles one or more o o° 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 o* 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 The next page is Page 8 [R:\LIBOO]05147.doc:iad WO 98/43415 PCT/EP97/02114 -8decodes 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 onscreen 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; WO 98/43415 PCT/EP97/02114 -9a 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/decoder 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.
WO 98/43415 PCT/EP97/02114 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.
0 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.
0 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 WO 98/43415 PCT/EP97/02114 11application 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 receiver/decoder 2020 or downloadable into the RAM of the decoder 2020.
0 A PC Download application. On request, an end user can download computer software using the PC download application.
0 A Magazine Browser application. The magazine browser application comprises a cyclic video broadcast of images with end user navigation via on-screen buttons.
0 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.
0 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.
0 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 WO 98/43415 PCT/EP97/02114 12 via the telephone line a statement of account, transferring funds between accounts, requesting a cheque book, etc.
0 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 files, instruction sequence files and application files; variables block unit files are stored in memory following a call to a procedure for loading modules and remain locked there until a specific call to a procedure for unloading modules is made.
WO 98/43415 PCT/EP97/02114 13 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, each section 4300 typically comprises the following fields: table ID (TID) 4302, typically having a size of 1 byte, at the beginning of the section 4300; section length identifier 4304, typically having a size of 2 bytes; section number (SN) 4306 (eg. 1) of that section in the table, the SN typically having a size of 1 byte; the total number of sections (LSN) 4308 (eg. 3) in that table, the LSN typically having a size of 1 byte; WO 98/43415 PCT/EP97/02114 14- TID extension 4310, typically having a size of 2 bytes; private data 4312; and CRC 4314 of the section 4300. The purpose of the CRC 4314 is to check all of the bytes in the section 4300; if the CRC 4314 correlates with all of the preceding data, the section is accepted by the receiver/decoder 2020. Similarly, the private data field 4312 may comprise an MD5 signature at the end of the field and calculated from all of the preceding contents of that field 4312.
In respect of data received via the serial or parallel interfaces, the fields of a section may vary; typically a section received via eitheir of the aforementioned interfaces comprises a reduced amount of data in fields 4302 to 4310 and no CRC 4314.
For a particular module/table, all of the sections making up that table have the same TID 4302 and the same TID extension 4310. For a particular application, all of the tables making up that application have the same TID but different respective TID extensions.
To access a module 4010 from, for example, the MPEG bitstream, both the PID for the module and a module directory are required. This directory simply lists the modules 4010 which can be downloaded from the carrier signal. Once this directory has been downloaded, it is possible for the application to download one or more modules 4010.
The concept of modules 4010 together with the concept of downloading small pieces of code allows the easy evolution of applications. They can be downloaded into permanent FLASH memory of the receiver/decoder 2020 as resident software or broadcast in order to be downloaded into the RAM of the decoder 2020 only when needed by the end user.
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 the memory 2024 is divided into typically a RAM volume 4022, FLASH volume WO 98/43415 PCT/EP97/02114 15 4024, and ROM volume 4026. 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.
The RAM volume 4022 in turn is divided into a zone dedicated to firmware, a working space for the engine 4008 and the buffers. The FLASH and other nonvolatile memory can be accessed either by an application or the engine itself through a device manager.
Each volume contains a list of modules 4010, each module 4010 containing a list of files 4012, 4014, 4016, 4018, 4020. It is possible to have two files bearing the same name and which may be located in distinct modules. For example, a version of the application is typically stored in the ROM volume 4026, with later versions being downloadable into the FLASH volume 4024 to substitute the version stored in the ROM volume with that volume stored in the FLASH volume 4024. The contents of files may be compressed in LZW format, however as decompression of files takes a certain period of time they may be received in decompressed format.
Physical interfaces of the receiver/decoder 2020 are used for downloading data. With reference to Figure 6, the receiver/decoder 2020 contains, for example, six downloading media; MPEG flow tuner 4028, serial interface 4030, parallel interface 4032, modem 4034 and two card readers 4036.
With multiple sources of applications and multiple manufacturing sources of receiver/decoder 2020, it is important that one application behaves in the same way on every receiver/decoder, and each receiver/decoder should execute every application in the same, correct manner. With reference to Figure 7, the receiver/decoder 2020 comprises a run time engine 4008 running under the control of a microprocessor and a common application programming interface 4054. They are installed in every receiver/decoder 2020 so that all receiver/decoders 2020 are identical from the WO 98/43415 PCT/EP97/02114 16 application point of view.
Figure 7 shows the architecture of the receiver/decoder 2020 for running applications 4056. The virtual machine 4007 executes' applications 4056, which may comprise applications 4056' coupled directly to the virtual machine or applications 4056" downloaded to the receiver/decoder 2020 from, for example, the MPEG data stream.
The run time engine 4008 also displays graphics and text, calls devices for services, receives "events" and uses functions of a library 4058 for specific computation.
With reference to Figure 7, with respect to an application a function of the decoder 2020 is "seen" as a device 4060. There may, therefore, be functions of the receiver/decoder 2020 which may not be seen by any application.
A device 4060 comprises a logical device unit which may correspond to a component 4062 or physical interface 4064 of the hardware 4066. Such devices are referred to as "low level devices" 4068. The output-of such a device 4068 may be connected to at least one device driver 4070 for converting the logical signals output by the device 4068 into signals required to drive, for example, a hardware interface 4064.
Alternatively, the device 4068 may itself drive a component or interface of the receiver/decoder 2020, that is, the output of the device may be connected directly to the hardware 4066.
Examples of low level devices 4068 are described below.
An LCARD device enables a program to communicate with the smartcard contained in one smartcard reader 4036, and an RCARD device enables a program to communicate with the smartcard contained in the other smartcard reader 4036. For example, these devices enable a program to read the state of the card, read the card history and send an input message to the card. The devices also inform a program of the insertion of a card in to the reader, removal of a card from a reader and card reset if not requested by the program. The LCARD and RCARD devices are specific to the protocol used for running the card. Typically an IS07816 protocol is used.
WO 98/43415 PCT/EP97/02114 17 An SCTV device enables a program to verify and configure of a scart outlet to the television set 2022. For example, this device enables a program to request information about the sound characteristic of the scart outlet, perform a "MUTE" on the sound and dynamically program RGB levels.
A TUNER device enables a program to use the tuner 4028. For example, the device enables a program to perform a scan from either a minimum frequency or a current frequency of the tuner, read the tuner parameters and program the tuner.
A SERIAL device enables a program to communicate with equipment via a serial link and a PARALLEL device enables a program to communicate with equipment via a parallel link. For example, these devices enable a program to send a message via the respective link and inform a program of the reception of a message via that link.
A MODEM device allows the receiver decoder to communicate with a data service via an internal half-duplex modem supporting V23. The MODEM device requests the dialling of a number, the sending of a message to the data server and disconnection of the modem, and signals reception of a message, the detection of errors and the loss or detection of a carrier.
Remote devices, executed in a remote location, can be any of the local devices, except that a port and protocol must be defined.
In addition to "low level devices" the receiver/decoder 2020 may also include "high level devices" 4072 which control operations of the receiver/decoder 2020.
With respect to sections loaded from an MPEG data stream, a device 4072 referred to as an "MLOAD device" allows an application to load an MPEG section, a complete MPEG table or a group of MPEG sections corresponding to hardware and software filtering criteria.
WO 98/43415 PCT/EP97/02114 18 With reference to Figure 8, electromagnetic signals are received by receiver 2018 and transmitted to MPEG tuner 4028. The tuner typically scans a range of frequencies, a stopping only when carrier frequency is detected within that range. The thus detected signals are transmitted to demodulator 4500, which demodulates the signals and transmits them to demultiplexer 4502. DemultipleXer 4502 is connected to MPEG chip 4504, which in turn is connected to television 2022. The demultiplexer 4502 is also connected to hardware filter 4506 which typically provides up to 32 outputs connected to RAM volume 4022 of the receiver/decoder 2020.
The electromagnetic signals received by the demiltiplexer 4502 comprise a number of data streams of data packets, typically comprising a stream of video packets, a stream of audio packets, a stream of teletext packets and a stream of subtitle packets for a service provided by the broadcast supplier. These data packets are demultiplexed by the demultiplexer 4502 and transmitted to MPEG chip 4504 for decoding into signals for the television set 2022.
The data packets relating to applications are transmitted to the hardware filter 4506.
With reference to Figure 9, the hardware filter, or prefilter, 4506 utilises one or more of typically 8 bytes of a section 4508 of the data stream, typically offset byte 0 (4510) and offset bytes 3 to 9 (4512) to filter sections from the data stream. These bytes include the TID 4302, section number 4306, last section number 4308 and TID extension 4310 of the MPEG section 4508.
To define the hardware prefilter characteristic, the application specifies which bits of the section 4508 to take into account and the expected value of each selected bit.
Accordingly, the hardware prefilter 4506 comprises a filter mask array 4514 and a filter value array 4516 respectively, an example of each being shown in Figure In Figure 10, bits 4518, 4520 and 4522 are chosen using filter mask 4514 and the value of each of these bits, 0, 1 and 0 respectively, is chosen using filter value 4516.
With those filtering criteria, MPEG section 4524 would be output to the buffers of the RAM 4022 of the receiver/decoder 2020, whereas MPEG section 4526 would not be output to the buffers.
WO 98/43415 PCT/EP97/02114 19 The hardware prefilter 4506 operates by means of a demultiplexer chip, avoiding wasting processor power within the main processor.
The microprocessor may utilise the RAM 4022 of the receiver/decoder 2020 in which the sections are stored as a software filter 4526. By means of the software filter 4526, it is possible to select which of the sections loaded in the buffers of the RAM volume 4022 will be brought to the application.
The principles of software filtering are similar to those of hardware filtering. The software filter 4526 uses typically 8 consecutive'bytes 4528 of data in the MPEG section 4508. As shown in Figure 11, the position of the first byte 4530 of these 8 consecutive bytes is defined with an offset 4532 based on the first byte 4510 in the section 4508.
If after loading via the hardware filter the data stored in an MPEG section does not correspond to the criteria for software filtering, the buffer in which the MPEG section is stored may be used to load another MPEG section.
To load an MPEG section from the MPEG data stream, the MLOAD device is supplied typically with the following information: the PID of the data stream in which the MPEG section is to be found; a descrambling data array comprising a number of PID ECMs for descrambling PIDs; an operator reference, which recognises a particular ECM to be used to descramble the PID; the hardware filter value array to be applied; the hardware filter mask array to be applied; the software filter offset value to be applied; the software filter value array to be applied; the software filter mask array to be applied; the maximum size of the section (up to 4096 bytes); and a time out function determining how long the device should wait to load a WO 98/43415 PCT/EP97/02114 20 section, a group of sections or a table.
When it is indicated that the maximum size of a section is 512 bytes, the size of the section cannot exceed 512 bytes.
The section is loaded all at once into the buffer of the RAM volume 4022 allocated by the device. When the section has been loaded, and if it corresponds to the software filtering criteria, the device should free the demultiplexing route and inform the application via an "event", which includes an execution report and the address of the buffer containing the section. After loading, a section is identified by the address of the buffer in which it is stored.
When a table is to be loaded, the device is also supplied with the TID 4302. Each section of the table is loaded into the respective buffer allocated therefor all at once.
However, it is not essential that the tables are loaded by putting sections end to end and in section order. As each section of the table is loaded, the device may inform the application that that section of the table has been loaded. Alternatively or additionally the device may inform the application via an event that the entire table has been loaded successfully into the buffers allocated therefor.
With reference to Figure 12, a table is typically loaded in the following way (description of the software filtering is omitted for reasons of clarity only); step 1: specify the hardware filter mask array 4534 and the hardware filter value array 4536; step 2: load a first section 4538 corresponding to the hardware (and software) filter; step 3: read the value of the LSN 4540 of the section 4538 to determine the number of sections to be loaded LSN 1) and change the hardware filter mask array 4534 and the hardware filter value array 4536 according to the value of the LSN 4540; steps 4 to 6: load the remaining sections 4542, 4544 and 4546 according to the values of the TID and the LSN and send an event to the application.
WO 98/43415 PCT/EP97/02114 21 Table loading is only complete when an event indicating successful downloading is entered into the queue of the run time engine 4006. Before this event is placed in the engine queue, abortion of the loading of the table should be successful.
After a table has been loaded, it is identified with b name assigned to it by the application when requesting the downloading of a table.
Information regarding the way in which a table is stored in the memory of the receiver/decoder 2020 can be accessed via a call which returns a descriptor of the table. An example of such a descriptor is shown in Figure 17. The descriptor 4700 includes a field 4702 comprising the total number of sections (LSN 1) in the table and a list 4704 of the buffers containing the sections 4538, 4542, 4544 and 4546 which make up the table commencing with the section 4544 having the SN of then the section 4546 having the SN of and so on up to the section 4542 having the SN corresponding to the LSN.
A group of sections comprises all of the sections which correspond to the hardware and software filtering criteria. The sections appear cyclically in the MPEG data stream.
With reference to Figure 13, a group 4548 is delimited by two sections; a first section (SDG) 4550 and a last section (SFG) 4552, each of which corresponds to respective filter criteria, with the other sections (SG) 4554 of the group therebetween.
The loading of sections in a group may occur using two different loading modes.
In the "following mode", a predetermined number of sections 4554 which immediately follow the SDG 4550 are loaded. For each type of section (SDG, SG, SFG), the application identifies the TID, hardware filter, software filter and the maximum section length.
With reference to Figure 14, the device preferably first applies hardware and software WO 98/43415 PCT/EP97/02114 22 filtering criteria to enable the downloading and storing of the SDG 4550 only This avoids the loading of redundant SGs 4554 in buffers of the RAM memory volume 4022 of the receiver/decoder 2020 prior to the loading of the SDG 4550. Upon detection, SDG 4550 is stored in a memory location or buffer 4556. The device then applies hardware and software filtering criteria to ehable the downloading of the desired SGs and SFG from the group of MPEG data sections.
In the example shown in Figure 14, three SGs 4554 from a group of MPEG sections comprising one SDG, seven SGs and one SFG are to be downloaded from the MPEG data stream. Following storage of the SDG 4550'-in buffer 4556, the first SG 4558.
from the group of MPEG sections to be transmitted after the SDG 4550 is stored in buffer 4560. Likewise, the second SG 4562 from the group of MPEG sections to be transmitted after the SDG 4550 is stored in buffer 4564 and the third SG 4566 from the group of MPEG sections to be transmitted after the SDG 4550 is stored in buffer 4568.
Storage of the SGs continues until either the required number of sections 4554 have been stored or the SFG 4552 is downloaded. If downloaded, the SFG 4552 is not stored in a memory location.
As each section of the group is loaded, the device may inform the application via an event that that section of the group has been loaded. Alternatively, or additionally, the device may inform the application of only either the completion of the storage of the MPEG sections or the downloading of the SFG 4552 by sending an event to the application.
In the "preceding mode", a predetermined number of sections which immediately precede the SFG are stored in the memory locations. For each type of section (SDG, SG, SFG), the application identifies the PID, TID, hardware filter, software filter and the maximum section length.
Loading in this mode requires the use of a circular buffer to store MPEG sections.
WO 98/43415 PCT/EP97/02114 23 With reference to Figure 15, the device preferably first applies hardware and software filtering criteria to enable the downloading and storing of the SDG 4570 only. This avoids the loading of redundant SGs 4544 in the RAM memory volume 4022 of the receiver/decoder 2020 prior to the loading of the SDG 4570. Upon detection, SDG 4550 is not stored. The device then applies hardware and software filtering criteria to enable the downloading of the desired SGs and SFG from the group of MPEG data sections.
In the example shown in Figure 15, three SGs 4544 from a group of MPEG sections comprising one SDG, seven SGs and one SFG are'to be downloaded from the MPEG data stream. Following the downloading of the SDG 4570, the first SG 4572 from the group of MPEG sections to be transmitted after the SDG 4570 is stored in buffer 4574. Likewise, the second SG 4576 from the group of MPEG sections to be transmitted after the SDG 4550 is stored in buffer 4578 and the third SG 4580 from the group of MPEG sections to be transmitted after the SDG 4570 is stored in buffer 4582.
The fourth SG 4584 from the group of MPEG sections to be transmitted after the SDG 4550 is stored in buffer 4574, that is, the buffer in which the first SG 4572 had been stored. Similarly, each of the subsequently transmitted SGs 4586, 4588 and 4590 are stored in buffers 4578, 4582 and 4574 respectively.
Storage of SGs in this cyclic manner is continued until the SFG 4592 is detected by the device. This is the case even if the desired number of SGs have not been loaded before the SFG is detected. Upon detection, the SFG 4592 is stored in a buffer, and an event indicating successful downloading of the group is sent to the application.
Information regarding the way in which a group is stored in the RAM 4022 of the receiver/decoder 2020 can be accessed via a special call which returns a descriptor of the group. An example of such a descriptor is shown in Figure 16. The descriptor 4600 includes a field 4602 comprising the number of sections in the group and a list 4604 of the buffers containing either the SDG or the SFG (depending on the loading WO 98/43415 PCT/EP97/02114 24 mode) and the sections SG which make up the group in the order of loading.
After the group has been loaded, it is uniquely identified with a name assigned to it by the application when requesting the doWnloading of the group.
It is possible to add a section to a group or to delete a section from a group. A section may belong to more than one group.
When the application requests the addition of a section to a group, the address of the buffer containing the new section is put at the end of the descriptor 4604, and the field 4602 is updated. When the application requests the deletion of a section from a group, the address of the buffer containing this section is suppressed in the descriptor 4600, and field 4602 is updated. If the section was not the last section in the group, the descriptor is reorganised to remove any empty memory spaces. Thus, it is possible to have an "empty group" by deleting all of the sections.
Devices are identified with a unique identifier, for example, "LCARDDEVICE_ID" identifies the LCARD device and "RCARD DEVICE ID" identifies the RCARD device.
When a new device 4062 is created, it can be installed in existing decoders 2020 by downloading the relevant application 4056 from the broadcast centre. Typically the maximum number of devices handled by one manager is 256.
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 toolbox 4058 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 decoder 2020 without affecting the rest of the software.
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.
o .:00*o 0* 4 0 0 [R:\LIBOO]05147.doc:iad

Claims (6)

1. A method of extracting and storing from a transmitted data stream a plurality of sections of data from a group of said sections having at least one common section characteristic, said method comprising the steps of: receiving the data stream; filtering from said data stream one section from said group according to said at least one section characteristic; storing said one section; and repeating steps and to store from said group a selection of the sections successively received after said one section, in a first operational mode a predetermined number of sections following a particular section in said group being stored, whereas in a second operational mode a predetermined number preceding a particular section in said group being stored.
2. A method according to claim 1, wherein said group includes a first section and a •0 last section, in said first mode step comprising storing a predetermined number of sections immediately following the first section in said group, whereas in said second mode step comprising storing a predetermined number of sections immediately preceding the last section in said group. °°oo •e oo 0
3. A method according to claim 1 or 2, wherein each section is stored in a respective memory location.
4. A method according to claim 3, wherein, after storage, each stored section is identified by the address of the memory location in which that section is stored. A method according to any one of the preceding claims, wherein the first section of the group is initially filtered from the transmitted data stream.
6. A method according to claim 5, wherein, in said first mode, step comprises the step of subsequently storing sections of the group successively received and filtered immediately after said first section, each section being stored in a respective memory p location, until one of: said predetermined number of sections have been stored; and before [R:\LIBOO]05147.doc:iad
27- said predetermined number of sections have been stored, the last section in the group is stored. 7. A method according to claim 5 or 6, wherein, in said second mode, step (d) comprises the step of subsequently storing sections successively received and filtered immediately after said first section, each section being stored in a respective memory location, until one of: said predetermined number of sections have been stored, whereupon the sections stored in the memory locations are successively overwritten by subsequently received and filtered sections until the last section in the group is stored; and before said predetermined number of sections have been stored, said last section is stored. 8. A method according to any one of the preceding claims, wherein said filtering 6 Fi step comprises the steps of: specifying at least one filtering characteristic, each characteristic comprising a Sis filtering criterion and a value for that filtering criterion; comparing the or each section characteristic with a respective filtering characteristic; and filtering said one section from said data stream when the or each section characteristic corresponds to the respective filtering characteristic. ooo• @900 9. A method according to any one of the preceding claims, comprising a further step of: supplying a section identification signal to an application upon storage of a section of said group. A method according to claim 9, wherein said section identification signal comprises the storage address of said stored section. 11. Apparatus for extracting and storing from a transmitted data stream a plurality of sections of data from a group of said sections having at least one common section characteristic, said apparatus comprising: means for receiving the data stream; means for filtering from said data stream one section from said group according to said at least one section characteristic; and means for storing said one section; [R:\LIBOO]05147.doc:iad -28- said filtering means and storage means being arranged to store from said group a selection of the sections successively received after said one section, in a first operational mode a predetermined number of sections following a chosen section in said group being stored, whereas in a second operational mode a predetermined number preceding a chosen section in said group being stored. 12. Apparatus according to claim 11, wherein said group includes a first section and a last section, the filtering means and the storage means being arranged to store, in said first mode, a predetermined number of sections immediately following the first section in said group, and to store, in said second mode, a predetermined number of sections immediately preceding the last section in said group. 13. Apparatus according to claim 11 or 12, wherein said storage means comprises a o,* Splurality of memory locations for storing respective sections. 14. Apparatus according to claim 13, comprising means for identifying each stored ••section by the address of the memory location in which that section is stored. Apparatus according to any one of claims 11 to 14, wherein the filtering means is 2o 0 arranged to initially filter the first section of the group from the transmitted data steam. *•oo 16. Apparatus according to claim 15, wherein, in said first mode, the filtering means and the storage means are arranged to store sections of the group successively received and filtered immediately after said first section, each section being stored in a respective memory location, until one of: said predetermined number of sections have been stored; and before said predetermined number of sections have been stored, the last section in the group is stored. 17. Apparatus according to claim 15 or 16, wherein, in said second mode, the filtering means and the storage means are arranged to store sections successively received and filtered immediately after said first section, each section being stored in a respective memory location, until one of: said predetermined number of sections have been stored, whereupon the sections stored in the memory locations are successively overwritten by subsequently received and filtered sections until the last section in the group is stored; and 3 5 before said predetermined number of sections have been stored, said last section is stored. [R:\LIBO]05147.doc:iad -29- 18. Apparatus according to any one of claims 11 to 17, wherein said filtering means comprises: means for specifying at least one filtering characteristic, each characteristic comprising a filtering criterion and a value for that filtering criterion; means for comparing the or each section characteristic with a respective filtering characteristic; and means for filtering said one section from said data stream when the or each section characteristic corresponds to the respective filtering characteristic. 19. Apparatus according to any one of claims 11 to 18, further comprising: means for supplying a section identification signal to an application when said data stored in said stored section corresponds to said respective data filtering characteristic. "20. Apparatus according to claim 19, wherein said section identification signal comprises the storage address of said one section. 21. Apparatus for extracting and storing from a transmitted data stream a plurality of 2o sections of data from a group of said sections having at least one common section characteristic, said apparatus comprising: a receiver for receiving the data stream; a filter for filtering from said data stream one section from said group according to said at least one section characteristic; and 25 a memory for storing said one section; said filter and memory being arranged to store from said group a selection of the sections successively received after said one section, in a first operational mode a predetermined number of sections following a chosen section in said group being stored, whereas in a second operational mode a predetermined number preceding a chosen section in said group being stored. 22. A method according to any one of claims 1 to 11, wherein said data stream is in the form of an MPEG bitstream containing video and audio television data in addition to said sections. [R:\LIBOO]05147.doc:iad 23. An apparatus according to any one of claims 11 to 21, wherein said data stream is in the form of an MPEG bitstream containing video and audio television data in addition to said sections. 24. Apparatus for extracting and storing from a transmitted data stream a plurality of sections of data from a group of said sections having at least one common section characteristic, said apparatus substantially as described herein with reference to Figs. 1 to 17 of the accompanying drawings. 25. Method of extracting and storing from a transmitted data stream a plurality of sections of data from a group of said sections having at least one common section characteristic, said method substantially as described herein with reference to Figs. 1 to 17 of the accompanying drawings. 15 DATED this Eighteenth Day of September, 2001 Canal+ Societe Anonyme Patent Attorneys for the Applicant SPRUSON FERGUSON *o o o• [R:\LIBOO]05147.doc:iad
AU27708/97A 1997-03-21 1997-04-25 Extracting data sections from a transmitted data stream Expired AU742067B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP97400650 1997-03-21
EP97400650 1997-03-21
PCT/EP1997/002114 WO1998043415A1 (en) 1997-03-21 1997-04-25 Extracting data sections from a transmitted data stream

Publications (2)

Publication Number Publication Date
AU2770897A AU2770897A (en) 1998-10-20
AU742067B2 true AU742067B2 (en) 2001-12-13

Family

ID=26070209

Family Applications (1)

Application Number Title Priority Date Filing Date
AU27708/97A Expired AU742067B2 (en) 1997-03-21 1997-04-25 Extracting data sections from a transmitted data stream

Country Status (17)

Country Link
EP (1) EP0968602A1 (en)
JP (2) JP4376321B2 (en)
KR (1) KR100495779B1 (en)
CN (1) CN1254469A (en)
AU (1) AU742067B2 (en)
BR (1) BR9714600A (en)
CA (1) CA2284018C (en)
HU (1) HUP0002383A2 (en)
IL (1) IL131937A (en)
NO (1) NO334507B1 (en)
NZ (1) NZ500204A (en)
PL (1) PL183917B1 (en)
RU (1) RU2181929C2 (en)
TR (1) TR199902275T2 (en)
UA (1) UA61944C2 (en)
WO (1) WO1998043415A1 (en)
ZA (1) ZA973611B (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134554A (en) 1998-11-10 2000-10-17 Opentv, Inc. System and method for recording receipt of information
US6460086B1 (en) * 1998-12-01 2002-10-01 Sun Microsystems, Inc. Method and apparatus for delivery of a bytecode embedded within a transport stream
KR100587284B1 (en) * 1999-01-14 2006-06-08 엘지전자 주식회사 Method for PSI filtering
FR2794602A1 (en) * 1999-06-02 2000-12-08 Dassault Automatismes DIGITAL TELEVISION RECEIVER / DECODER DEVICE WITH INTERACTIVE READING OF PREVIOUSLY RECORDED TELEVISION PROGRAMS
GB2350980B (en) * 1999-06-08 2003-08-27 Sgs Thomson Microelectronics Device and method for processing a stream of data
GB2352595B (en) * 1999-07-27 2003-10-01 Sgs Thomson Microelectronics Data processing device
WO2001013644A1 (en) * 1999-08-16 2001-02-22 General Instrument Corporation Method and system for automatically purging code objects being updated by download
JP2001067803A (en) * 1999-08-30 2001-03-16 Matsushita Electric Ind Co Ltd Image-recording/reproducing apparatus
JP4240766B2 (en) 2000-06-26 2009-03-18 パナソニック株式会社 DATA STORAGE METHOD, RECEIVING DEVICE AND BROADCASTING SYSTEM IMPLEMENTING THE SAME
EP1267579A3 (en) 2001-06-11 2003-03-19 Canal+ Technologies Société Anonyme MPEG table structure
KR100619053B1 (en) * 2003-11-10 2006-08-31 삼성전자주식회사 Information storage medium for subtitle and apparatus therefor
KR20050072255A (en) 2004-01-06 2005-07-11 엘지전자 주식회사 Method for managing and reproducing a subtitle of high density optical disc
KR100782808B1 (en) * 2004-01-13 2007-12-06 삼성전자주식회사 Storage medium recording interactive graphic stream and reproducing apparatus thereof
US7162533B2 (en) 2004-04-30 2007-01-09 Microsoft Corporation Session description message extensions
KR100601689B1 (en) * 2004-06-29 2006-07-14 삼성전자주식회사 Method and apparatus for filtering section data
US20090292761A1 (en) * 2004-12-13 2009-11-26 Koninklijke Philips Electronics, N.V. Bypass dsmcc middleware via section filter mechanism
CN100521676C (en) 2005-04-14 2009-07-29 华为技术有限公司 Method and apparatus for realizing independent staging business software in set-top box
EP1835728A1 (en) * 2006-03-15 2007-09-19 Dibcom Method for data transfer and data recovery
US7962725B2 (en) 2006-05-04 2011-06-14 Qualcomm Incorporated Pre-decoding variable length instructions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0735776A2 (en) * 1995-03-29 1996-10-02 Hitachi, Ltd. Decoder for compressed and multiplexed video and audio data
EP0751680A2 (en) * 1995-06-26 1997-01-02 Matsushita Electric Industrial Co., Ltd. Method for switching programs in digital broadcasting and digital broadcast receiving apparatus
US5594492A (en) * 1994-05-26 1997-01-14 Bell Atlantic Network Services, Inc. Method and apparatus for rapid channel selection

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5635979A (en) * 1994-05-27 1997-06-03 Bell Atlantic Dynamically programmable digital entertainment terminal using downloaded software to control broadband data operations
KR0166935B1 (en) * 1994-11-23 1999-03-20 구자홍 Mpeg2 transport decoder apparatus
JP3301263B2 (en) * 1995-03-29 2002-07-15 株式会社日立製作所 Data decoding device
US5600378A (en) * 1995-05-22 1997-02-04 Scientific-Atlanta, Inc. Logical and composite channel mapping in an MPEG network
JPH09182049A (en) * 1995-12-26 1997-07-11 Hitachi Ltd Digital information transmission system and transmitter and receiver therefor
JPH10145755A (en) * 1996-11-06 1998-05-29 Matsushita Electric Ind Co Ltd Data output controller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594492A (en) * 1994-05-26 1997-01-14 Bell Atlantic Network Services, Inc. Method and apparatus for rapid channel selection
EP0735776A2 (en) * 1995-03-29 1996-10-02 Hitachi, Ltd. Decoder for compressed and multiplexed video and audio data
EP0751680A2 (en) * 1995-06-26 1997-01-02 Matsushita Electric Industrial Co., Ltd. Method for switching programs in digital broadcasting and digital broadcast receiving apparatus

Also Published As

Publication number Publication date
IL131937A0 (en) 2001-03-19
KR100495779B1 (en) 2005-06-17
AU2770897A (en) 1998-10-20
IL131937A (en) 2004-06-01
JP4376321B2 (en) 2009-12-02
HUP0002383A2 (en) 2000-10-28
CN1254469A (en) 2000-05-24
NO994538D0 (en) 1999-09-17
UA61944C2 (en) 2003-12-15
JP2009077451A (en) 2009-04-09
WO1998043415A1 (en) 1998-10-01
PL183917B1 (en) 2002-08-30
JP2001518256A (en) 2001-10-09
NZ500204A (en) 2001-12-21
PL335776A1 (en) 2000-05-22
BR9714600A (en) 2002-09-10
NO994538L (en) 1999-11-22
NO334507B1 (en) 2014-03-24
RU2181929C2 (en) 2002-04-27
ZA973611B (en) 1998-03-23
CA2284018C (en) 2008-06-03
EP0968602A1 (en) 2000-01-05
TR199902275T2 (en) 2000-02-21
CA2284018A1 (en) 1998-10-01
KR20000076404A (en) 2000-12-26

Similar Documents

Publication Publication Date Title
AU742067B2 (en) Extracting data sections from a transmitted data stream
US6938166B1 (en) Method of downloading of data to an MPEG receiver/decoder and MPEG transmission system for implementing the same
US6970960B1 (en) Instream loader
KR100566419B1 (en) Decoder for a digital audiovisual transmission system
JP2001518256A5 (en)
AU740740B2 (en) Data processing system
AU742956B2 (en) Television or radio control system development
AU742213B2 (en) Access control system
AU776683B2 (en) Method of downloading of data to an MPEG receiver/decoder and MPEG transmission system for implementing the same
MXPA99008546A (en) Extracting data sections from a transmitted data stream
KR20000076405A (en) Acess control system
CZ331699A3 (en) Selection method of data sections from transmitted data flow and apparatus for making the same
MXPA00007588A (en) Configuring method and device
CZ331799A3 (en) Access control system

Legal Events

Date Code Title Description
FGA Letters patent sealed or granted (standard patent)