MXPA99008546A - Extracting data sections from a transmitted data stream - Google Patents
Extracting data sections from a transmitted data streamInfo
- Publication number
- MXPA99008546A MXPA99008546A MXPA/A/1999/008546A MX9908546A MXPA99008546A MX PA99008546 A MXPA99008546 A MX PA99008546A MX 9908546 A MX9908546 A MX 9908546A MX PA99008546 A MXPA99008546 A MX PA99008546A
- Authority
- MX
- Mexico
- Prior art keywords
- section
- sections
- stored
- filtering
- data
- Prior art date
Links
Abstract
A method of storing at least one of a plurality of MPEG sections in an MPEG data stream is provided, the MPEG section having at least one MPEG section characteristic. An MPEG data stream is received and the one MPEG section is filtered from the MPEG data stream according to at least one MPEG section characteristic. The MPEG section is subsequently stored.
Description
r
EXTRACTION OF DATA SECTIONS FROM A CURRENT
OF DATA TRANSMITTED
The present invention relates to an apparatus and method for storing one or more sections of a transmitted data stream, such as an MPEG bitstream containing audio and video television data, in addition to the data sections. 10 The emergence of digital transmission systems whose main purpose is to transmit television signals, in particular, but not exclusively satellite television systems, has opened the possibility of using those systems for other purposes. One of these is
provide interactivity with the end user. One way to do this is to run an application in the receiver / decoder through which the television signal is received. The code for the application could be stored permanently 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 can be provided, and applications can be updated according to
requires 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 in such a way as to minimize the use of memory space by the different functions required by the system. In addition, it may also be necessary to minimize the time required to access at least some parts of the memory. In accordance with the above, the present invention is particularly, but not exclusively, concerned with the download into the memory of the receiver / decoder of only those data specifically required by an application. In a first aspect, the present invention provides a method for storing at least one of a plurality of sections of a transmitted data stream, the section having at least one section characteristic, the method comprising the steps of: receiving the data stream; filter that section from the data stream, in accordance with at least the section characteristic; and store that section. This filtering step enables only the sections required by an application to be loaded into the memory of a receiver / decoder. In a preferred embodiment, the filtering step comprises the steps of: specifying at least one filtering characteristic, each characteristic comprising a filtering criterion and a value for that filtering criterion; comparing the, or each section characteristic with a respective filtering characteristic; and filtering that section from the data stream when the, or each section characteristic corresponds to the respective filtering characteristic. A second aspect of the present invention provides a method for storing a plurality of sections of a data stream transmitted using the above method, each section being stored in a respective memory location. Preferably, this method also comprises the step of: specifying at least one data filtering characteristic, each data filtering feature comprising a data filtering criterion and a value for that data filtering criterion;
comparing the data stored in each stored section with a respective data filtering feature; and enabling the stored section to be replaced in memory, when the data stored in that stored section does not correspond to the respective data filtering characteristic. Preferably, the method also comprises the step of supplying a section identification signal to an application, when the data stored in that stored section corresponds to the respective data filtering characteristic. The section identification signal preferably comprises the storage address of that section. In a third aspect, the present invention provides a method for storing a group of sections, in accordance with the above method, the sections being cyclically transmitted in the data stream, each group including a first section and a last section; the method comprising the steps of: storing the first section; Subsequently download the successfully transmitted sections, immediately after the first section, each section being successfully stored in a respective memory location, until either the last section is downloaded or a previously determined number of sections have been stored. In a fourth aspect, the present invention provides a method for storing a group of sections, in accordance with the above method, the sections being cyclically transmitted in the data stream, the group including a first section and a last section; the method comprising the steps of: downloading the first section; Subsequently download the successfully transmitted sections, immediately after the first section, each section being successfully stored in a respective memory location, until either the last section is downloaded or a previously determined number of sections have been stored, after which the sections stored in the memory locations are successfully overwritten, by means of the sections downloaded subsequently, until the last section is downloaded; and store the last section in memory. In a fifth aspect, the present invention provides a method for storing a group of cyclically transmitted sections in a data stream, the group including a first section and a last section;
the method comprising the steps of: receiving the data stream; download the first section and store it in a memory; Subsequently download the successfully transmitted sections, immediately after the first section, each section being successfully stored in a respective memory location, until either the last section is downloaded or a previously determined number of sections in that memory have been stored. In a sixth aspect, the present invention provides a method for storing a group of cyclically transmitted sections in a data stream, the group including a first section and a last section; the method comprising the steps of: receiving the data stream; download the first section; Subsequently download the successfully transmitted sections, immediately after the first section, each section being successfully stored in a respective memory location, until either the last section is downloaded or a previously determined number of sections have been stored, after which the sections stored in the memory locations are successfully overwritten, by means of the sections downloaded subsequently, until the last section is downloaded; and store the last section in memory. By virtue of the third to sixth aspects of the present invention, only those sections that are required of a group of sections are stored in the receiver / decoder memory. For example, when you see a list of, say, three television programs scheduled for broadcast at a particular time, through the third and fifth aspects, only the first four sections of the group are downloaded from the data stream, enabling to the end user to quickly scroll down the list, starting from the first program that is displayed at that moment. By means of the fourth and sixth aspects, only the last four sections of the data stream group are downloaded, enabling the end user to quickly scroll up the list, starting with the last program displayed at that moment, and allowing that the memory of the receiver / decoder is minimized. In a seventh aspect, the present invention provides an apparatus for storing at least one of a plurality of sections of a transmitted data stream, that section having at least one section characteristic, the apparatus comprising: elements for receiving the data stream; elements for filtering that section from the data stream, in accordance with at least the section characteristic; and elements to store that section. Preferably, the filtering element comprises: elements for specifying at least one filtering characteristic, each characteristic comprising a filtering criterion and a value for that filtering criterion; elements for comparing the, or each section characteristic with a respective filtering characteristic; and elements for filtering that section from the data stream when the, or each section characteristic corresponds to the respective filtering characteristic. In an eighth aspect, the present invention provides an apparatus as described above, for downloading a plurality of those sections, the storage element comprising a plurality of memory locations for storing the respective sections. Preferably, the apparatus also comprises: elements for specifying at least one data filtering characteristic, each filtering characteristic comprising a data filtering criterion and a value for that data filtering criterion; elements for comparing the data stored in each stored section with a respective data filtering characteristic; and elements to enable the stored section to be replaced in that memory when the data stored in that stored section does not correspond to the respective data filtering feature. The apparatus may also comprise: elements for supplying a section identification signal to an application, when the data stored in the stored section corresponds to the respective data filtering characteristic. The above method or apparatus can be used with that data stream in the form of an MPEG bit stream, which also includes video and audio television data in addition to the sections. The 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, in accordance with 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 configuration of the files inside a module downloaded into the memory of an interactive receiver / decoder. Figure 4 shows the configuration of a section. Figure 5 shows the configuration of the memory volumes of the interactive receiver / decoder. Figure 6 is a schematic diagram of the receiver / decoder interfaces. Figure 7 shows the architecture of the software in the receiver / decoder. Figure 8 shows the architecture of the receiving system for downloading the sections from an MPEG data stream. Figure 9 shows the configuration of bytes in a section, which uses a hardware pre-filter. Figure 10 shows an example of a hardware filter mask array and a hardware filter value array of a hardware filter. Figure 11 shows the configuration of bytes in a section, which uses a software pre-filter. Figure 12 shows an example of loading a table. Figure 13 shows an example of a configuration of sections in a group of sections. Figure 14 shows an example of a next 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 configuration of fields in a descriptor of a group of sections. Figure 17 shows the configuration of fields in a descriptor of a section table. In Figure 1 an overview of a digital television system 1000 is shown. 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, the 2002 MPEG-2 compressor is a transmission center receiving a stream of digital signals (typically a stream of video signals). The compressor 2002 is connected to a multiplexer and encoder 2004 by means of the link 2006. The multiplexer 2004 receives a plurality of additional input signals, assembles one or more transport streams and transmits compressed digital signals to a transmitter 2008 of the transmission center by link 2010, which of course can take a wide variety of forms, including telecom links. The transmitter 2008 transmits electromagnetic signals by means of the 2012 uplink to a 2014 satellite transmitter-receiver, where these are electronically processed and transmitted via the 2016 speculative downlink to the land receiver 2018, conventionally in the form of a own dish or rented by the end user. The signals received by the receiver 2018 are transmitted to an integrated receiver or decoder 2020 owned or rented by the end user, and connected to the television set 2022 of the end user. The receiver / decoder 2020 decodes the compressed MPEG-2 signal to 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 partially in the transmission center, and partially in the decoder. This allows the end user to access the digital television transmissions from one or more transmission providers. You can insert a smart card, capable of deciphering messages related to commercial offers (that is, one or many television programs sold by the transmission provider), within the receiver / decoder 2020. Using the decoder 2020 and the smart card, the end user can buy commercial offers either in a subscription mode or a pay-per-event mode. An interactive system 4000, also connected to the multiplexer 2004 and the receiver / decoder 2020, and again partially located in the transmission center and partially in the decoder, allows the end user to interact with different applications by means of a modulated return channel 4002. -desmodulated. 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 4000 system allows an end user to buy catalog items on the screen, check local news and climate maps on demand, and play games through their television set. The interactive system 4000 comprises in general four main elements: - an originating tool 4004 in the transmission center (or some other place), to allow a transmission provider to create, develop, debug and test applications; an application and data server 4006, in the transmission center, connected to the originating tool 4004, to allow a transmission provider to prepare, authenticate, and format applications and data for dispatch to the multiplexer and encoder 2004 for insertion into the stream MPEG-2 transport (typically the private section thereof) to be transmitted to the end user; a virtual machine that includes a runtime machine (RTE) 4008, which is an executable code installed in the receiver / decoder 2020 own or rented by the end user, to allow the end user to receive, authenticate, decompress, and load applications within working memory 2024 of receiver / decoder 2020 for execution. Machine 4008 also runs resident, general-purpose applications. The machine 4008 is independent of the hardware and operating system; and a modulated-demodulated back channel 4002 between the receiver / decoder 2020 and the application and data server 4006, to enable signals that tell the server 4006 to insert data and applications into the MPEG-2 transport stream upon request of the end user. The interactive television system operates using "applications" that control the functions of the receiver / decoder and different devices contained therein. The applications are represented on the machine 4008 as "resource files". A "module" is a set of files and resource data. Many modules may be required to form an application. A "memory volume" of the receiver / decoder is a storage space for the modules. An "interface" is used to download modules. The modules can be downloaded into the receiver / decoder 2020 from the MPEG-2 transport stream. Now the elements mentioned in the previous paragraph will be described in more detail. For the purposes of this specification, an application is a piece of computer code for controlling high-level preference functions of the receiver / decoder 2020. For example, when the end user places the focus of a remote controller on a button object that is seen on the screen of the television set 2022, and presses the validation key, the sequence of instructions associated with the button is executed.
An interactive application proposes menus and executes commands on the end user's request, and provides data related to the purpose of the application. The applications can be either resident applications, that is, stored in the ROM (or FLASH or other non-volatile memory) of the receiver / decoder 2020, or transmitted and downloaded into the RAM or FLASH of the receiver / decoder 2020. The examples of the applications are; - • An Initialization Application. The receiver / decoder 2020 is equipped with a resident initialization application which is an adaptive collection of modules (this term being defined in more detail later herein), which allows the receiver / decoder 2020 to be immediately operative in the MPEG environment. 2. The application provides core characteristics that can be modified by the transmission provider if required. It also provides an interface between resident applications and downloaded applications. • An Ignition Application. The application of ignition allows any application, whether downloaded or resident, to run on the receiver / decoder 2020. This application acts as a loading operation on the arrival of a service, in order to start the application. The ignition is discharged into the RAM and, therefore, can be easily updated. This can be configured in such a way that the interactive applications available on each channel can be selected and executed, either immediately after downloading or after preloading. In the case of pre-loading, the application is loaded into the 2024 memory, and activated by power-on when required. • A Program Guide. The Program Guide is an interactive application that gives complete information about programming. For example, it can give information about, say, the one-week television programs provided by each channel of a digital television bouquet. By pressing the key on the remote controller 2026, the end user accesses an added screen, above the event that is displayed on the television set 2022 screen. This added screen is a navigator that gives information about the current and future events of each channel of the digital TV corsage. By pressing another key on the remote controller 2026, the end user accesses an application that visually displays a list of information about the events during a week. The end user can also search and select events with simple and custom criteria. The end user can also directly access a selected channel.
• One Pay Per View application. The pay-per-view application is an interactive service available on each Pay Per View channel of the digital TV bouquet, in conjunction with the 3000 conditional access system. The end user can access the application using a TV guide or channel navigator. Additionally, the application automatically starts as soon as the Pay Per View event is detected on the Pay Per View channel. Then the end user is able to buy the event in progress either through his smart daughter 3020 card or via communication server 3022 (using the modem, a telephone and DTMF, MINITEL or similar codes). The application can be either resident in the ROM of the receiver / decoder 2020 or downloadable within the RAM of the receiver / decoder 2020. • A PC Download application. Upon request, an end user can download computer software using the PC download application. • A Magazine Browser application. The magazine browser application comprises a cyclic video transmission of images with navigation of the end user via buttons on the screen. • A questionnaire application. The questionnaire application is preferably synchronized with a transmission questionnaire program. As an example, multiple selection questions are displayed on the 2022 television screen visually, and the user can select a response using the remote 2026 controller. The questionnaire application can inform the user if the answer is correct or not, and can keep score of the user. • An application of Shopping by Television. In an example of the television shopping application, offers of goods for sale are transmitted to the receiver / decoder 2020, and displayed visually on the television 2022. Using the remote controller, the user can select a particular item to buy it. The order of the article is sent via the modulated-demodulated return channel 4002 to the application and data server 4006, or to a separate sales system, whose telephone has been downloaded to the receiver / decoder, possibly with an order to charge the account to a credit card that has been inserted in one of the 4036 card readers of the receiver / decoder 2020.
• A Telebanca application. In one example of the telebanking application, the user inserts a bank card into one of the receiver cards 4036 of the receiver / decoder 2020. The receiver / decoder 2020 marks the user's bank, using a telephone number stored on the card bank or stored in the receiver / decoder, and then the application provides a number of facilities that can be selected using the remote 2026 controller, for example, to download an account statement via the telephone line, transfer funds between accounts, request a checkbook, etc. • An Internet Browser application. In an example of the Internet browser application, user instructions are entered, such as a request to view a web page that has a particular URL, using the remote 2026 controller, and these are sent through the modulated return channel 4002. -desmodulated to application server 4006 and data. The appropriate web page is then included in the transmissions from the transmission center, received by the receiver / decoder 2020 via the uplink 2012, the transmitter-receiver 2014 and the descending 2016 link, and is displayed visually on the television 2022. The applications are stored in the memory locations in the receiver / decoder 2020 and are represented as resource files. Resource files include graphics object description unit files, variable 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 variable block drive files describe the data structures that the application handles. The instruction sequence files describe the processing operations of the applications. The application files provide the entry points for the applications. Applications made in this way can cause data files, such as icon library files, image files, character font files, color table files, and ASCII text files. An interactive application can also obtain data online by making entries and / or outputs. The machine 4008 only loads into its memory those resource files that it needs at a given moment. These resource files are read from the graphic object description unit files, instruction sequence files, and application files; the variable block drive files are stored in the memory after a procedure call to load the modules and remain blocked there until a specific call is made to a procedure to download the modules. With reference to Figure 3, a module 4010, such as a television shopping module, is a set of resource and data files comprising the following: a single application file 4012; an indeterminate number of files 4014 of the graphic object description unit; an indeterminate number of 4016 files of variable blocks unit; an indeterminate number of 4018 instruction sequence files; and where appropriate, 4020 data files, such as icon library files, image files, character font files, color table files and ASCII text files. In the MPEG data stream, each module comprises a group of MPEG tables. Each MPEG table can be formatted as a number of sections. In the MPEG data stream, each section has a "size" of up to 4 kbytes. For the transfer of data through the serial and parallel port, for example, the modules are divided in a similar way into tables and sections, the size of the section varying with the means of transport. The modules are transported in the MPEG data stream in the form of data packets of typically 188 bytes, within respective types of data streams, for example, video data streams, audio data streams and teletext data streams. Each packet is preceded by a packet identifier (PID) of 13 bits, a PID for every packet transported in the MPEG data stream. A table of program maps (PMT table) contains a list of the different data streams, and defines the content of each data stream, in accordance with the respective PID. A PID can notify a device of 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, which typically has a size of 1 byte, at the beginning of section 4300; the identifier 4304 in length, which typically has a size of 2 bytes; the section number (SN) 4306 (for example 1) of that section in the table, the SN typically having a size of 1 byte; the total number of sections (LSN) 4308 (for example 3) in that table, the LSN typically having a size of 1 byte; the 4310 TID extension, which typically has a size of 2 bytes; private data 4312; and CRC 4314 of section 4300. The purpose of CRC 4314 is to verify all bytes in section 4300; if the CRC 4314 correlates with all the preceding data, the receiver / decoder 2020 accepts the section. Similarly, the private data field 4312 may comprise an MD5 signature at the end of the field, and calculated from all the preceding contents of that field 4312. With respect to the data received by means of the serial or parallel interfaces, the fields of a section may vary; typically a section received by means of any of the interfaces mentioned above comprises a reduced amount of data in fields 4302 to 4310 and not CRC 4314. For a particular module / table, all the sections that make up that table have the same TID 4302 and the same extension 4310 TID. For a particular application, all the tables that make up that application have the same TID but different respective TID extensions. To access a 4010 module from, for example, the MPEG bit stream, both the PID for the module and a module directory are required. This directory simply lists the 4010 modules that can be downloaded from the carrier signal. Once this directory has been downloaded, it is possible for the application to download one or more 4010 modules. The concept of 4010 modules together with the concept of downloading small pieces of code, allows the easy evolution of the applications. These can be downloaded into the permanent FLASH memory of the receiver / decoder 2020, as a resident software, or transmitted for the purpose of downloading into the RAM of the decoder 2020, only when the end user needs it. A memory volume is a storage space for the modules 4010. Those storage spaces are located in the memory 2024 of the receiver / decoder 2020. With reference to Figure 5, the memory 2024 is typically divided into a volume 4022 of the RAM , a volume 4024 of the FLASH, and a volume 4026 of the ROM. The memory can also be divided into memory volumes associated with the different interfaces, through which the modules are downloaded into the receiver / decoder 2020, for example, an MPEG volume for storing the received modules by means of a serial interface . The volume 4022 of the RAM, in turn, is divided into a zone dedicated to the microprogramming, a workspace for the machine 4008 and the buffers. FLASH memory and other non-volatile memory can be accessed either through an application, or the machine 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 with the same name, which can be located in different modules. For example, a version of the application is typically stored on volume 4026 of the ROM, with later versions being downloadable within volume 4024 of the FLASH, to replace the version stored in the volume of the ROM with that volume stored in the volume 4024 of the FLASH. The content of the files can be compressed in the LZW format, however, since the decompression of the files takes a certain period of time, these can be received in uncompressed format. The physical interfaces of the receiver / decoder 2020 are used to download data. With reference to Figure 6, the receiver / decoder 2020 contains, for example, six discharge means; the 4028 MPEG stream tuner, the serial 4030 interface, the parallel 4032 interface, the 4034 modem and two 4036 card readers.
With multiple sources of applications and multiple sources of manufacture of the receiver / decoder 2020, it is important that an application behaves in the same manner in every receiver / decoder 2020, and each receiver / decoder 2020 must execute every application in the same correct manner. With reference to Figure 7, the receiver / decoder 2020 comprises a runtime machine 4008 operating under the control of a microprocessor and a common application programming interface 4054. These are installed in every receiver / decoder 2020, in such a way that all the receivers / decoders 2020 are identical from the point of view of the application. Figure 7 shows the architecture of the receiver / decoder 2020 to execute the applications 4056. The virtual machine 4007 executes the applications 4056, which can comprise the applications 4056 'directly coupled to the virtual machine, or the 4056 applications' downloaded to the receiver / decoder 2020 from, for example, the MPEG data stream. The runtime machine 4008 also visually displays graphics and text, calls devices for services, receives the "events" and uses the functions of a 4058 library 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 be, therefore, functions of the receiver / decoder 2020 that may not be seen by any application. A device 4060 comprises a logical device unit that could correspond to a component 4062 or physical interface 4064 of hardware 4066. Those devices are referred to as "low level devices" 4068. The output of that device 4068 could be connected to when minus a device driver 4070 for converting the output of the logic signals by the device 4068 to signals that are required to control, for example, a hardware interface 4064. Alternatively, the device 4068 can itself control a component or interface of the receiver / decoder 2020, that is, the output of the device can be directly connected to the hardware 4066. The following describes the examples of the 4068 low-frequency devices. level. An LCARD device enables a program for communication with the smart card contained in a smart card reader 4036, and a RCAR device enables a program for communication with the smart card contained in the other smart card reader 4036. For example, these devices enable a program to read the status of the card, read the history of the card and send an input message to the card. The devices also inform a program of the insertion of a card in the reader, the removal of a card from the reader and the restoration of the card if the program does not require it. The LCARD and RCARD devices are specific to the protocol used to execute the card. Typically an IS07816 protocol is used. An SCTV device enables a program to verify and configure an intelligent card output to the television set 2022. For example, this device enables a program to request information about the sound characteristic of the smart card output, perform a "MUTE" ("SILENCE") on the sound and dynamically program the 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 an ongoing frequency of the tuner, read the parameters of the tuner and program the tuner. A SERIAL device enables a program for communication with the equipment through a serial link, and a PARALLEL device enables a program for communication with the equipment through a parallel link.
For example, these devices enable a program to send a message through the respective link and inform a program of the receipt of a message through that link. A MODEM device allows the receiver / decoder to communicate with a data service by means of a half-duplex internal modem that supports V23. The MODEM device requests the dialing of a number, the sending of a message to the data server and the disconnection of the modem, and signals the reception of a message, the detection of errors and the loss or detection of a carrier. Remote devices, which run at a remote location, can be any of the local devices, except that a port and protocol must be defined. In addition to the "low level devices" the receiver / decoder 2020 can also include "high level devices" 4072 which control the operations of the receiver / decoder 2020. With respect to the sections loaded from an MPEG data stream, a device 4072 referred to as a "MLOAD device" allows an application to load an MPEG section, a complete MPEG table, or a group of MPEG sections that correspond to the filtering criteria of the hardware and software.
With reference to Figure 8, the receiver 2018 receives electromagnetic signals, which are transmitted to the 4028 MPEG tuner. The tuner typically scans a range of frequencies, stopping only when the carrier frequency is detected within that range. The signals so detected are transmitted to the demodulator 4500, which demodulates the signals and transmits them to the demultiplexer 4502. The demultiplexer 4502 is connected to the MPEG chip 4504, which in turn is connected to the television 2022. The demultiplexer 4502 is also connected to the filter 4506 of hardware typically providing up to 32 outputs connected to the volume 4022 of the receiver / decoder RAM 2020. The electromagnetic signals received by the demultiplexer 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 caption packets for a service provided by the transmission provider. These data packets are demultiplexed by means of the demultiplexer 4502, and are transmitted to the MPEG chip 4504 for decoding in the signals for the television set 2022. The data packets that are related to the applications are transmitted to the hardware filter 4506. With reference to Figure 9, the hardware filter, or prefilter, 4506 uses one or more of typically 8 bytes of a section 4508 of the data stream, typically byte 0 (4510) of phase shift and bytes 3 through 9 (4512) of phase shift, to filter the sections of the data stream. These bytes include the TID 4302, the section number 4306, the number 4308 of the last section and the extension 4310 TID of the MPEG section 4508. To define the hardware's pre-filter characteristic, the application specifies which bits of the 4508 section to take into account, and the expected value of each selected bit. In accordance with the foregoing, the prior hardware filter 4506 comprises a filter mask configuration 4514 and a filter value configuration 4516 respectively, an example of each being shown in Figure 10. In Figure 10, the bits 4518 , 4520 and 4522 are selected using the filter mask 4514 and the value of each of these bits, 0, 1 and 0 respectively, is chosen using the filter value 4516. With those filtering criteria, the MPEG section 4524 would be removed from the RAM 4022 buffers of the receiver / decoder 2020, while the MPEG section 4526 would not be output to the buffers. The previous filter 4506 of the hardware operates by means of a demultiplexer chip, avoiding wasting processor power inside the main processor. The microprocessor can use 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 volume 4022 of the RAM will be brought to the application. The principles of software filtration are similar to those of hardware filtering. Software filter 4526 typically uses 8 consecutive bytes 4528 of data in MPEG section 4508. As shown in Figure 11, the position of the first byte 4530 of these 8 consecutive bytes is defined with a phase offset 4532 based on the first byte 4510 in section 4508. If after loading, by means of the hardware filter, the data stored in an MPEG section do not correspond to the criteria for software filtering, you can use the buffer in which the MPEG section is stored to load another MPEG section. To load an MPEG section from the MPEG data stream, the MLOAD device is typically supplied with the following information: the PID of the data stream in which the MPEG section will be found;
an array of decoding data comprising a number of PID ECMs for decoding the PIDs; an operator reference, which recognizes a particular ECM that will be used to decode the PID; the fix of the filter value of the hardware to be applied; the filter mask array of the hardware to be applied; the filter phase offset value of the software to be applied; the fix of the filter value of the software to be applied; the filter mask array of the software to be applied; the maximum size of the section (up to 4096 bytes); and an out-of-time function that determines how long the device should wait to load a 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 can not exceed 512 bytes. The section is loaded all at once into the buffer of volume 4022 of the RAM allocated by the device. When the section has been loaded, and if this corresponds to the filtering criteria of the software, the device must release the demultiplexing path, and inform the application by means of an "event", which includes an execution report and the address of the buffer that contains 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 thereto, all at once. However, it is not essential that the tables are loaded by placing the end sections in order and in order of the section. As each section of the table is loaded, the device can inform the application that that section of the table has been loaded. Alternatively or additionally, the device can inform the application, by means of an event, that the entire table has been successfully loaded into the buffers allocated for it. With reference to Figure 12, a table is typically loaded in the following manner (the description of the filtration is omitted only for reasons of clarity); Step 1: Specify hardware filter mask array 4534 and hardware filter value array 4536; step 2: load a first section 4538 that corresponds to the hardware filter (and software); 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 hardware filter value array 4536, in accordance with the LSN 4540 value; Steps 4 to 6: load sections 4542, 4544 and
4546 remaining, in accordance with the values of the TID and the LSN, and send an event to the application. The loading of the table is only complete when an event indicating the successful download is entered in the linear list of the run time machine 4006. Before this event is placed in the linear list of the machine, the abortion of the loading of the table must be successful. After a table has been loaded, it is identified by a name assigned to it by the application when a table download is requested. The information regarding the way in which a table is stored in the memory of the receiver / decoder 2020, can be accessed by means of a call that returns a descriptor of the table. An example of that descriptor is shown in Figure 17. The descriptor 4700 includes a field 4702 which comprises 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 that make up the table, beginning with the section 4544 having the SN of "0", then section 4546 having the SN of "1" and thus successfully up to section 4542 having the SN corresponding to the LSN. A group of sections includes all the sections that correspond to the filtering criteria of the hardware and software. 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 between them. Loading of the sections in a group can occur using two different loading modes. In the "next mode", a previously determined number of the 4554 sections immediately following the SDG 4550 is loaded. For each section type (SDG, SG, SFG), the application identifies the TID, the hardware filter, the software filter and the maximum length of the section.
With reference to Figure 14, the device preferably first applies the hardware and software filtering criteria to enable the download and storage of the SDG 4550 only. This avoids the loading of redundant SGs 4554 into the buffers of the volume 4022 of the RAM of the receiver / decoder 2020, prior to loading the SDG 4550. Upon detection, the SDG 4550 is stored in a location in the memory or 4556 intermediate memory. Then the device applies the filtering criteria of the hardware and software, to enable the download of the desired SGs and SFG from the group of MPEG data sections. In the example shown in Figure 14, three SGs 4554 are to be downloaded from a group of MPEG sections comprising an SDG, seven SGs and one SFG, from the MPEG data stream. After storage of the SDG 4550 in the intermediate memory 4556, in the intermediate memory 4560 the first SG 4558 is stored from the group of MPEG sections, which is to be transmitted after the SDG 4550. In the same way, in the memory 4564 intermediate the second SG 4562 is stored from the group of MPEG sections, which is to be transmitted after the SDG 4550, and in the intermediate memory 4568 the third SG 4566 is stored from the group of MPEG sections, which is to be transmitted after the SDG 4550.
The storage of the SGs continues until either the required number of sections 4554 has 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 can inform the application, through an event, that that section of the group has been loaded. Alternatively, or additionally, the device can inform the application of either the termination of storage of the MPEG sections, or the download of the SFG 4552, by sending an event to the application. In the "previous mode", a previously determined number of sections immediately preceding the SFG are stored in the memory locations. For each type of section (SDG, SG, SFG), the application identifies the PID, the TID, the hardware filter, the software filter and the maximum length of the section. Loading in this mode requires the use of a circular buffer to store the MPEG sections. With reference to Figure 15, the device preferably first applies the filtering criteria of the hardware and software, to enable the download and storage of the SDG 4570 only. This avoids the loading of redundant SGs 4544 into the volume 4022 of the RAM of the receiver / decoder 2020, before loading of the SDG 4570. Upon its detection, the SDG 4550 is not stored. Then the device applies the filtering criteria of the hardware and software, to enable the download of the desired SGs and SFG from the group of MPEG data sections. In the example shown in Figure 15, three SGs 4544 are to be downloaded from a group of MPEG sections comprising an SDG, seven SGs and one SFG, from the MPEG data stream. After downloading the SDG 4570, in the intermediate memory 4574 the first SG 4572 is stored from the group of MPEG sections, which is to be transmitted after the SDG 4570. In the same way, in the intermediate memory 4578 the second one is stored. SG 4576 from the group of MPEG sections, to be transmitted after the SDG 4550, and in the intermediate memory 4582 the third SG 4580 is stored from the group of MPEG sections, which is to be transmitted after the SDG 4570. In the intermediate memory 4574, the fourth SG 4584 is stored from the group of MPEG sections, which is to be transmitted after the SDG 4550, that is, the buffer in which the first SG 4572 has been stored. Similarly, each of the subsequently transmitted SGs 4586, 4588 and 4590 are stored in the intermediate memories 4578, 4582 and 4574, respectively.
The storage of the SGs in this cyclic manner continues until the device detects the SFG 4592. This is the case even if the desired number of SGs has not been loaded before the SFG is detected. after detection, the SFG 4592 is stored in a buffer, and an event indicating the successful download of the group is sent to the application. The information regarding the way in which a group is stored in the RAM 4022 of the receiver / decoder 2020, can be accessed by means of a special call that returns a group descriptor.
An example of that descriptor is shown in Figure 16. The descriptor 4600 includes a field 4602 that comprises the number of sections in the group, and a list 4604 of the buffers that contain either the SDG or the SFG
(depending on the load mode) and the SG sections that make up the group in the loading order. After the group has been loaded, it is identified only by a name assigned to it by means of the application, when a group download is requested. It is possible to add a section to a group, or delete a section of a group. A section can belong to more than one group. When the application requires the addition of a section to a group, the address of the buffer containing the new section is placed at the end of the descriptor 4604, and the field 4602 is updated. When the application requires the deletion of a section of a group, the address of the buffer containing this section is deleted in the 4600 descriptor, and field 4602 is updated. If the section was not the last section in the group, the descriptor is reorganized to remove any empty memory spaces. In this way, it is possible to have an "empty group" by deleting all the sections. The devices are identified with a unique identifier, for example, "LCARD_DEVICE_ID" identifies the LCARD device, and "RCARD_DEVICE_ID" identifies the RCARD device. When a new device is created, it can be installed in existing decoders 2020 by downloading the relevant application 4056 from the transmission center. Typically, the maximum number of devices managed by a managed system is 256. This download is made to the receiver / decoder 2020 by an application 4056 that verifies the hardware and software versions and, if they are correct, loads the software module that represents the new device 4062, and requests a procedure from the 4058 box of tools to install the code of the new device inside the microprogramming (in the FLASH memory). This can provide a flexible and secure installation of the new functions inside 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 any modifications of the detail may be made within the scope of the invention. Each feature described in the description may be provided, and (where appropriate) the claims and drawings independently or in any appropriate combination. In the preferred embodiments mentioned above, certain features of the present invention have been implemented, using computer software. However, it will of course be clear to the experienced person that any of these features can be implemented, using the hardware. Additionally, it will be readily understood that the functions performed by the hardware, computer software, and the like, are performed on or using electrical or similar signals. The cross reference is made to our pending requests, all of them having the same filing date, and titled Signal Generation and Transmission (Lawyer Reference Number PC / ASB / 19707), Smart Card for use with a Transmission Signal Receiver. Key, and Receiving System (Lawyer Reference Number PC / ASB / 19708), Transmission and Reception and Conditional Access System for it (Lawyer Reference Number PC / ASB / 19710), Downloading a Computer File from a Transmitter by means of a Receiver / Decoder to a Computer (Lawyer Reference Number PC / ASB / 19711), Transmission and Reception of Television Programs and Other Data (Lawyer Reference Number PC / ASB / 19712), Downloading Data (PC Lawyer Number Reference) / ASB / 19713), Computer Memory Organization (Lawyer Reference Number PC / ASB / 19714), Development of Television or Radio Control System (Lawyer Reference Number PC / ASB / 19715), Extracting Data Sections from of a Transmitted Data Stream (Lawyer Reference Number PC / ASB / 19716), Access Control System (Lawyer Reference Number PC / ASB / 19717), Data Processing System (Lawyer Reference Number PC / ASB / 197 18), and Transmission and Reception System, and Receiver / Decoder and Remote Controller for the same (Lawyer Reference Number PC / ASB / 19720). The descriptions of these documents are incorporated herein by reference. The list of applications includes the present application.
Claims (29)
- CLAIMS 1. A method for storing a plurality of sections of a transmitted data stream, the method comprising the steps of: (a) receiving the data stream; (b) filtering a section of the plurality of sections from said data stream, in accordance with at least one section characteristic; (c) store that section; and (d) repeating steps (b) and (c) to store a predetermined number of sections that have that at least one section characteristic, from the sections received adjacent to that section.
- 2. A method, according to Claim 1, wherein the plurality of sections comprises a group having a first section and a last section, and step (d) comprises storing a predetermined number of sections of that group adjacent to one of the first section and the last section.
- 3. A method, in accordance with the Claim 2, wherein the first section of the group is filtered from the transmitted data stream.
- 4. A method, according to Claim 3, wherein step (d) comprises the step of subsequently storing the successfully received and filtered group sections immediately after that first section until, before the number has been stored of previously determined sections, the last section is stored.
- A method, according to Claim 1, wherein steps (b) and (c) are repeated to store a predetermined number of sections having at least one section characteristic of the sections received immediately after that section .
- 6. A method, according to Claim 5, wherein the plurality of sections comprises a group having a first section and a last section, and wherein step (b) comprises the step of filtering the first section of that stream. of data, step (c) comprises the step of storing said first section, and step (d) comprises the step of subsequently storing the sections of the group successfully received and filtered immediately after the first section, each section being stored in a respective memory location, until one of: the number of previously determined sections has been stored; and before the previously determined number of sections has been stored, the last section is stored.
- A method, according to Claim 1, wherein steps (b) and (c) are repeated to store a predetermined number of sections that have at least one section characteristic of the sections received immediately before that section .
- 8. A method, in accordance with the Claim 7, wherein the plurality of sections comprises a group having a first section and a last section, and wherein step (b) comprises the step filtering the first section of said data stream, step (c) comprises the step of storing that first section, and step (d) comprises the step of subsequently storing the successfully received and filtered sections immediately after the first section, each section being stored in a respective memory location, until one of the stored sections has been stored. : the number of sections previously determined, after which the sections stored in the memory locations are successfully overwritten by means of the sections received and filtered subsequently, until the last section is stored; and before the previously determined number of sections has been stored, the last section is stored.
- A method, according to any of the preceding claims, wherein the filtering step comprises the steps of: specifying at least one filtering characteristic, each characteristic comprising a filtering criterion and a value for that filtering criterion; compare the, or each section characteristic with a respective filtering characteristic; and filtering that section from the data stream when the, or each section characteristic corresponds to the respective filtering characteristic.
- A method, according to any of the preceding claims, wherein each section is stored in a respective memory location.
- A method, according to Claim 10, wherein the method also comprises the step of: specifying at least one data filtering feature, each data filtering feature comprising a data filtering criteria and a value for that criteria for data filtering; comparing the data stored in each stored section with a respective data filtering feature; and enabling said stored section to be replaced in memory, when the data stored in that stored section does not correspond to the respective data filtering feature.
- 12. A method, according to Claim 11, characterized in that it also comprises the step of: supplying a section identification signal to an application, when the data stored in that stored section corresponds to the respective data filtering characteristic.
- 13. A method, according to Claim 12, wherein the signal identifying signal comprises the storage address of said stored section.
- 14. A method for storing a group of sections cyclically transmitted in a data stream, the sections of said group having at least one common section characteristic; the group including a first section and a last section; the method comprising the steps of: receiving the data stream; downloading the first section and storing said first section in a memory; subsequently downloading the sections of that group successfully received, immediately after the first section, each section being stored successfully in a respective memory location, until one of: a previously determined number of sections has been stored in said memory; and before the previously determined number of sections has been stored, the last section is stored.
- 15. A method for storing a group of sections cyclically transmitted in a data stream, the group sections having at least one common section characteristic; the group including a first section and a last section; the method comprising the steps of: receiving the data stream; downloading the first section and storing said first section in a memory; Subsequently download the sections of that group successfully received, immediately after the first section, each section being stored in a respective memory location, until one of: a previously determined number of sections have been stored, after which the sections stored in the memory locations are successfully overwritten, by means of the sections of the group downloaded subsequently, until the last section is stored; and before the previously determined number of sections has been stored, the last section is stored.
- 16. A method for storing a plurality of sections of a transmitted data stream, substantially as described herein with reference to the accompanying drawings.
- 17. An apparatus for storing a plurality of sections of a transmitted data stream, the apparatus comprising: elements for receiving the data stream; elements for filtering a section of the plurality of sections from said data stream, in accordance with at least one section characteristic; and elements for storing that section: the filtering elements and the storage elements being configured to store a predetermined number of sections, which have at least one section characteristic of the sections received adjacent to that one section.
- The apparatus, according to Claim 17, wherein the plurality of sections comprises a group having a first section and a last section, and the filtering elements and storage elements are configured to store a certain number of sections. previously of that group contiguous to one of the first section and the last section.
- 19. The apparatus according to Claim 18, wherein the filtering element is configured to filter the first section of the group from the transmitted data stream.
- 20. The apparatus, in accordance with Claim 19, wherein the filtering element and the storage element are configured to store sections of the successfully received group and filtered immediately after said first section until, before the previously determined number of sections have been stored., the last section is stored.
- The apparatus, according to Claim 17, wherein the filtering element and the storage element are configured to store a predetermined number of sections having at least said section characteristic of the sections received immediately before the section. .
- 22. The apparatus according to claim 17, wherein the filtering element and the storage element are configured to store a predetermined number of sections having at least said section characteristic of the sections received immediately after said section. .
- 23. The apparatus according to any of Claims 17 to 22, wherein the filtering element comprises: elements for specifying at least one filtering characteristic, each characteristic comprising a filtering criterion and a value for that filtering criterion; elements for comparing the, or each section characteristic with a respective filtering characteristic; and elements for filtering that section from the data stream when the, or each section characteristic corresponds to the respective filtering characteristic.
- The apparatus, according to any of Claims 17 to 23, wherein the storage element comprises a plurality of memory locations for storing the respective sections.
- The apparatus, according to Claim 24, characterized in that it also comprises: elements for specifying at least one data filtering characteristic, each filtering characteristic comprising a data filtering criterion and a value for that data filtering criterion; elements for comparing the data stored in each stored section with a respective data filtering characteristic; and elements for enabling the stored section to be replaced in that memory when said data stored in that stored section does not correspond to the respective data filtering feature.
- 26. The apparatus according to Claim 25, characterized in that it also comprises: elements for supplying a section identification signal to an application, when said data stored in the stored section corresponds to the respective data filtering characteristic.
- 27. The apparatus, according to Claim 26, wherein the section identification signal comprises the storage direction of said section.
- 28. A method or apparatus, according to any of the preceding claims, for use with said data stream in the form of an MPEG bit stream, which contains video and audio television data, in addition to said sections.
- 29. An apparatus for storing a plurality of sections of a data stream transmitted substantially as described herein, with reference to, and as shown in the accompanying drawings.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP97400650.4 | 1997-03-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
MXPA99008546A true MXPA99008546A (en) | 2000-08-01 |
Family
ID=
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 | |
JP2009077451A (en) | Method of extracting data section from transmission data stream | |
US6970960B1 (en) | Instream loader | |
JP2001518256A5 (en) | ||
AU740740B2 (en) | Data processing system | |
AU742956B2 (en) | Television or radio control system development | |
AU742213B2 (en) | Access control system | |
MXPA99008546A (en) | Extracting data sections from a transmitted data stream | |
AU776683B2 (en) | Method of downloading of data to an MPEG receiver/decoder and MPEG transmission system for implementing the same | |
KR20000076405A (en) | Acess control system | |
MXPA99008545A (en) | Access control system | |
CZ331699A3 (en) | Selection method of data sections from transmitted data flow and apparatus for making the same | |
CZ331799A3 (en) | Access control system | |
MXPA00003214A (en) | Downloading data | |
MXPA00007588A (en) | Configuring method and device |