MXPA99008542A - Downloading a computer file from a transmitter via a receiver/decoder to a computer - Google Patents

Downloading a computer file from a transmitter via a receiver/decoder to a computer

Info

Publication number
MXPA99008542A
MXPA99008542A MXPA/A/1999/008542A MX9908542A MXPA99008542A MX PA99008542 A MXPA99008542 A MX PA99008542A MX 9908542 A MX9908542 A MX 9908542A MX PA99008542 A MXPA99008542 A MX PA99008542A
Authority
MX
Mexico
Prior art keywords
block
blocks
receiver
decoder
computer
Prior art date
Application number
MXPA/A/1999/008542A
Other languages
Spanish (es)
Inventor
Meillaud Eugene
Gerard Maurice Beuque Jeanbernard
Original Assignee
Gerard Maurice Beuque Jeanbernard
Canal+ Societe Anonyme
Meillaud Eugene
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 Gerard Maurice Beuque Jeanbernard, Canal+ Societe Anonyme, Meillaud Eugene filed Critical Gerard Maurice Beuque Jeanbernard
Publication of MXPA99008542A publication Critical patent/MXPA99008542A/en

Links

Abstract

The file, or a part thereof, is divided into a series of R groups of data, and each of the groups is subdivided into a series of C blocks of the data. A group of C redundancy blocks is generated, each redundancy block being related to respective ones of the data blocks in the R groups by being a bitwise exclusive OR or NOR of those data blocks. Each of the groups of data blocks and the group of redundancy blocks are repeatedly transmitted from the transmitter. At the receiver/decoder, at least some of the transmitted blocks are received and supplied to the computer. The computer is used to determine for at least one of the received redundancy blocks whether that redundancy block and all except one of its respective data blocks have been received, and if so regenerate said one data block. Lost data blocks can be regenerated without waiting for retransmitting.

Description

DOWNLOADING A COMPUTER FILE FROM A TRANSMITTER, THROUGH A RECEIVER / DECODER, TO A COMPUTER This invention relates to: - a method for downloading a computer file from a transmitter (such as an uplink satellite TV uplink transmitter) by means of a receiver / decoder (such as a digital satellite top box) to a computer (such as a PC or workstation); • a computer to be used to perform part of that method; • a recording medium (such as a floppy disk or CD-ROM) containing a computer program for programming a processing element of that computer; • an MPEG transmission system; and • a receiver / decoder that is configured to receive tables of MPEG video and / or audio data and computer file data blocks. The emergence of digital transmission systems whose primary purpose is to transmit television signals, particularly, but not exclusively, satellite television systems, has opened up the possibility of using those systems for other purposes. One of these is to make files or computer software available for download to a transmitter, v | to a receiver / decoder, to a computer, which comprises the steps of: dividing into file into blocks of data; transmit the blocks from the transmitter; receive the blocks transmitted in the receiver / decoder; and supplying the blocks received from the receiver / decoder to the computer. The blocks typically include CRC codes, so that they can be tested to see their validity, and the transmission of the blocks can typically be repeated in such a way that, if a block is not received correctly, or if it is not received at all. , the first time this is transmitted, it can be received the second or once subsequent that it is transmitted. A problem with that scheme is the additional time it takes to receive the file. If one or more blocks were not validly received. At the extreme, if only the last block is not validly received, then the total download time for the file will be approximately double. Another problem with that scheme is that, if the blocks are not downloaded in the order in which they are transmitted, for example because the download speed from the receiver / decoder to the computer is less than the download speed from the transmitter to the receiver / decoder, then the waiting time for the last few blocks can be relatively long. At the extreme, the waiting time for the last block can be almost as long as the time it takes to transmit a complete set of blocks, even though all blocks are validly received. In accordance with a first aspect of the present invention, there is provided a method for downloading a computer file from a transmitter, by means of a receiver / decoder, to a computer, comprising the steps of: dividing the file, or a part of the same, in a series of groups R of data, and subdividing each of the groups into a series of blocks C of the data; generating a group of C redundancy blocks, each redundancy block being related to respective ones of the data blocks in the R groups, by means of an exclusive OR or NOR by bits of those data blocks; transmit each of the groups of data blocks and the group of redundancy blocks from the transmitter; receive at least some of the blocks transmitted in the receiver / decoder; supply blocks received from the receiver / decoder to the computer; and determine with the computer, for at least one of the received redundancy blocks, if that block of redundancy has been received and all but one of its respective data blocks, and if so, regenerate that one block of data by means of perform an exclusive OR or NOR operation by bits in that redundancy block and the respective blocks of received data. To avoid doubts, the reference to a bit-exclusive OR operation in a plurality of data blocks means that each bit of a first of the blocks is XORed with a respective one-second bit of the blocks, and the result is XORed with a respective bit of one third of the blocks, and so on, to the last of the blocks. For simplicity, it is the first bit of the first block that is XORed with the first bit of the second block, with the result that it is XORed with the first bit of the third block, and so on, to give the first bit of the result, and similarly for the second bits, third bits and so on. However, it is possible to use different pre-determined permutations of the block bits in the XOR operations. Similar comments apply in the case where exclusive ÑOR operations are used, instead of XOR. The first aspect of the invention provides the advantage, especially towards the end of a file download operation, that if a block of data has not yet been received, it is possible to regenerate the block from the respective redundancy block and the blocks of respective data that has already been received, without having to wait for the remaining data block to be transmitted and received validly. If there has been a problem in the transmission or reception of a particular block, then there is a relatively high probability that there is also a problem with the transmission or reception of the next block in the same series of C blocks. However, by appropriate selection of the C value, the probability that there will also be a problem with the transmission or reception of the corresponding block in the next series of C blocks will be relatively small. It will be noted that the addition of these redundancy blocks will increase the time it takes to transmit all the blocks by 100 / R percent. However, by appropriate selection of the value of R, it can be caused that the benefits afforded by this aspect of the invention overcome this disadvantage. Typically, the values of C and R can be selected to be 50 and 10, respectively. The determination and regeneration steps can be performed for only some of the redundancy blocks received, especially those towards the end of a file download operation. However, the determination and regeneration steps are preferably performed for each of the received redundancy blocks for which all but one of the respective data blocks have been received. In the latter case, the method may further comprise the step of determining when enough of the blocks have been received, to allow any remaining data blocks to be regenerated, and then to stop receiving more blocks for the file or part thereof. The regeneration steps can therefore take place after all the required blocks have been received. The values of the numbers R and C can be fixed for all file download operations. However, to provide flexibility, preferably the method further comprises the steps of transmitting from the transmitter the data indicative of the values of the R and C numbers, receiving the R and C data in the receiver, and supplying the R data. and C to the computer; and where the computer is operable to use the data of R and C supplied to determine with which of the blocks of data each block of redundancy relates. Preferably the blocks are arranged in such a way that an ith (for i = C), one of the redundancy blocks in the group of C redundancy blocks, is thus related to the data block ith in each of the Rs groups of the C data blocks. However, other relationships are also possible. According to a second aspect of the present invention, there is provided a computer to be used to perform part of the method of the first aspect of the invention, the computer comprising: elements for receiving the blocks from the receiver / decoder; elements to process the received blocks, the processing elements being programmed to determine, for at least one of the redundancy blocks received, whether that block of redundancy has been received and all, except one, of their respective data blocks, and thus, to regenerate that one data block by performing an exclusive OR or NOR operation per bits in that redundancy block and the respective blocks of received data; and elements for storing the received data blocks and any of the regenerated data blocks. Preferably, the processing element is programmed to perform that determination and regeneration for each of the received redundancy blocks, for which all have been received, except one of the respective data blocks. In this case, the processing element is preferably programmed to determine when enough blocks have been received, to allow any remaining blocks of data to be regenerated, and then cause the receiving element to stop receiving more blocks from the file or part of it. The receiving element is preferably operable to receive data indicative of the values of the numbers R and C, and the processing element is programmed to use the data of R and C to determine with which of the blocks of data each block is related of redundancy. Preferably, the processing element is programmed to link together the received data blocks and any of the regenerated data blocks, to reconstruct the computer file or part thereof, and the storage element is operable to store the reconstructed file or part of it. In accordance with a third aspect of the present invention, a recording medium is provided that contains a computer program for programming a computer processing element, in accordance with the second aspect of the invention, to operate as specified above. According to a fourth aspect of the present invention, there is provided an MPEG transmission system, comprising: elements for dividing a file, or part thereof, for downloading to a receiver / decoder in a series of R data groups, and subdivide each of the groups into a series of C blocks of the data; elements for generating a group of C redundancy blocks, each being related to respective ones of the data blocks in the R groups, by means of being a unique OR or NOR by bits of those data blocks; and elements to transmit each of the groups of the data blocks and the group of redundancy blocks. A fifth aspect of the present invention also relates more particularly to a method for downloading a computer file from a transmitter, by means of a receiver / decoder to a computer, comprising the steps of: dividing the file into blocks of data; repeatedly transmit the blocks from the transmitter; receive the blocks transmitted in the receiver / decoder; and supplying the blocks received from the receiver / decoder to the computer. The data blocks are transmitted from the transmitter to the receiver / decoder at a fixed data rate, which can be typically 700 kbits / second. To allow the receiver / decoder to be used with computers having different capacities, and to take advantage of those capabilities, the receiver / decoder needs to be able to download the blocks to the computer, in different modes having different data rates, such as IEEE 1284 ECP mode that has a typical data rate of 1 Mbit / second, the IEEE 1284 parallel byte mode that has a typical data rate of 400 kbits / second, the IEEE 1284 parallel four-bit group mode that has a typical data rate of 150 to 200 kbits / second, and the RS-232 serial mode having a maximum data rate of probably 115 kbits / second and a typical data rate possibly lower substantially than this. When the data rate within the receiver / decoder is faster than the data rate from the receiver / decoder, steps are needed to ensure that all blocks of data are received and downloaded to the computer. This can be achieved by providing a buffer in the receiver / decoder, which is large enough to store a complete computer file. However, this can be expensive. Alternatively, you can estimate the minimum data rate from the receiver / decoder to the computer, divide between the expected data rate to the receiver / decoder, to provide a rounded integer X, and then you can download one in all X of blocks received to the computer, in such a way that N / X blocks are received in one phase, and then this phase can be repeated X times, in order to download all the N blocks. However, for efficiency, this depends on the speed of data to the computer being estimated accurately, and this is not possible because the data rate may vary. In addition, serious problems with this method would arise if a particular data block were lost. The fifth aspect of the invention has to do with finding a solution to these problems. According to a fifth aspect of the present invention, there is provided a method for downloading a computer file from a transmitter, by means of a receiver / decoder, to a computer, comprising the steps of: dividing the file into a number ( N) of blocks; repeatedly transmit the blocks of the file from the transmitter, each with an identity of that block; and, in the receiver / decoded, provide a plurality of N flags that are initially reset, one for each of the blocks, and determine if the flag for that block is set, and if not, supply that block from the receiver to the computer and set the flag for that block; until all the flags have been set. Therefore, it will be noted that it does not matter in which order the blocks receive the receiver / decoder. The receiver / decoder is able to determine if a block is needed, and if so, to download that block to the computer. If the receiver / decoder can download the blocks to the computer as soon as the blocks can be downloaded to the receiver / decoder, then most, if not all, of the blocks will be sequentially downloaded in order. However, if the receiver / decoder can not download the blocks to the computer as soon as the blocks can be downloaded to the receiver / decoder, for example, at only half the speed, then alternating blocks of speech will generally be downloaded during a phase, and then the remaining blocks will be discharged during a subsequent phase. If the ratio between the download speed to the receiver / decoder varies, at the download speed from the receiver / decoder, then the configuration described above will automatically adjust the interleaving of the blocks. Preferably, after each supply step, the computer is configured to send a reception acknowledgment of the block supplied to the receiver / decoder, and where the establishment step for each block is performed in response to the reception of the acknowledgment for that block . In accordance with the above, if the computer does not properly recognize a block, then the receiver / decoder unloads the block again at the next available opportunity. The method can also include the step of repeating the method, but without the step of resetting the flags. In this way, if there is an interruption in the reception of the blocks, you can resume the download method without repeating the download of the blocks that have already been received. According to a sixth aspect of the present invention, a receiver / decoder is provided which is configured to receive MPEG video and / or audio data tables and computer file data blocks, wherein a computer file is received as a plurality of N of those blocks, which are received cyclically, and each of which includes an identification of that block, the receiver / decoder including: elements for storing a plurality of N flags that are initially reset, one for each block of computer file; elements to temporarily store a block of computer file received at that moment; elements for supplying the block stored in the block storage element to the computer; and control elements that are configured to determine whether the flag for the block received at that time is set in the flag storage element, and if not, to cause the block supply element to supply that block from the element storage of blocks to the computer, and to set the flag for that block in the flag storage element. The receiver / decoder also preferably comprises elements for receiving an acknowledgment from the computer that this block has been received from the block supply element, and wherein the control element is thus operable to set the flag for that block, in response to receiving that recognition for that block. Preferably, the control element can be operated to cause the resumption of reception of the computer file blocks after a lost connection, without resetting the flags. The block supply element may be one of a plurality of such block supply elements of different types including, for example, at least two of: an IEEE parallel port of ECP mode; an IEEE parallel port of byte mode; an IEEE parallel port of a four-bit group mode; and an RS-232 serial port. It should be noted that the features of the first and fifth aspects of the invention can be used together, in a method for downloading a computer file from a transmitter, via a receiver / decoder to a computer. The preferred features of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which: - Figure 1 shows a global architecture of a digital television system. Figure 2 shows the architecture of an interactive system of the digital television system of Figure 1. Figure 3 is a schematic diagram of a receiver / decoder interfaces forming part of the system of Figures 1 and 2. Figure 4 is a schematic diagram of a remote controller that is used in the digital television system. Figure 5 illustrates a configuration of blocks that make up a file to be downloaded. Figure 6 illustrates the sequence of the blocks while the file is being downloaded. Figure 7 is a functional diagram of the receiver / decoder during the file download operation. Figures 8-12 are flowcharts that illustrate the processes that take place in the receiver / decoder during the file download operation. Figure 13 is an alternative illustration of a configuration of blocks that make up a file to be downloaded. Figure 14 is a more detailed illustration of a first matrix of the blocks shown in Figure 13. Figure 15 is an illustration of a generalized matrix of the blogs that are shown in Figure 13. Figure 16 is a flowchart that illustrates a process that takes place in an application server and data in the television system, to prepare a file for download. Figure 17 is a flow diagram illustrating a process that takes place on a computer during a file download operation. In Figure 1 there is shown an overview of a digital television system 1000, in accordance with the present invention. The invention includes a mostly conventional digital television system 2000, which uses the known compression system MPEG-2 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 via the link 2006. The multiplexer 2004 receives a plurality of additional input signals, assembles one or more, carries currents and transmits compressed digital signals to the transmitter 2008 of the transmission center by means of of the 2010 link, which of course can take a variety of forms, including telecommunications 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 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 interacting 4000 system allows an end user to buy catalog items on the screen, check local news and weather maps on demand, and play games through their television set. The interactive system 4000 generally comprises four main elements: - • an originating tool 4004 in the transmission center or elsewhere, 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 sending to the multiplexer and encoder 2004 for insertion into the MPEG-2 transport stream (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 own receiver / decoder 2020 or rented by the end user, to allow the end user to receive, authenticate, decompress, and load applications within the working memory of the 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 on the 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. A "memory volume" of the receiver / decoder is a storage space for the modules. The modules can be downloaded into the receiver / decoder 2020 from the MPEG-2 transport stream. The physical interfaces of the receiver / decoder 2020 are used to download the data. With reference to Figure 3, the decoder 2020 contains, for example, six discharge devices; the 4028 MPEG stream tuner, the serial 4030 interface, the parallel 4032 interface, the 4034 modem and two 4036 card readers. 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 2026 controller (as shown with more details in Figure 4) in a button object that is seen on the screen of television set 2022, and press the validation key, a 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 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 through the 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 includes a cyclic video transmission of images with navigation of the end user by means of on-screen buttons. • 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 one example of the television shopping application, goods for sale are transmitted to the receiver / decoder 2020, and displayed visually on television 2022. Using the remote controller, the user can select a particular item to buy it. The order of the article is sent through channel 4002 modulated return-demodulated to server 4006 of application and data, 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 card readers 4036 of the receiver / decoder 2020. • A Telebanca application. In an 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 dials 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 cheguera, 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 link 2016, and is displayed visually on the television 2022. Now we will describe the particular features of the PC Download application. A particular technical problem to be solved is that the computer to which it is finally desired to download the software, has a different data entry speed of the speed at which these are transmitted. For example, the difference can be from 9 kbits / second to 1000 kbits / second, with the software being transmitted via the MPEG-2 stream to, say, 500 kbits / second. To deal with this problem, in general, in the transmission center, the software is divided into N blocks (see Figure 5), and then inserted repeatedly into the private MPEG section (see Figure 6). The receiver / decoder 2020 includes a bitmap that describes all the software blocks. When the download begins, every bit in the bitmap is set to zero. The steps in the download procedure are: read the block number; if the bit = 0 send the block to the receiving computer; and the receiving computer verifies the block and sends an acknowledgment as appropriate. The receiving computer requires its own software, usually provided on a flexible disk, to join the different blocks of the transmitted software. Auto-interleaving provides a measure of flow control. Since the transmission data rate can not be altered, blocks in successive cycles are auto-interleaved. In accordance with the bit rate of the receiving computer, in successive cycles of a carousel each, say, third or fourth block is transmitted to the decoder 2020, until all the blocks have been received. If a block is lost, problems may arise. In general, a solution to this problem is to use the concept of redundancy using an XOR function. The additional redundant blocks are added to the data stream from which the values of the lost blocks can be derived, if necessary. The PC download application will now be described in more detail. During a PC download, the data is typically downloaded from the transmitter-receiver 2014 to the receiver / decoder 2020 via the tuner 4028 of the MPEG stream at a data rate of typically 700 kbits / second, and from the receiver / decoder 2020 to the computer through the parallel 4032 interface or the serial 4030 interface. The receiver / decoder supports the download to the computer via the parallel 4032 interface in the IEEE 1284 ECP mode, which has a typical data rate of 1 Mbits / second, in the byte mode that has a typical data rate of 400 kbits / second and in the 4-bit group mode that has a typical data rate of 150 to 200 kbits / second. The receiver / decoder also supports downloading to the computer via serial interface 4030 in RS-232 mode having a maximum data rate of probably 115 kbits / second and a typical data rate possibly substantially lower than this . The receiver / decoder 2020 provides all these download modes to the computer, in order to provide flexibility, and the user will normally select the fastest available download mode. When the data rate within the receiver / decoder 2020 is faster than the data rate from the receiver / decoder 2020, steps need to be taken to ensure that all blocks of data are received and downloaded to the computer. This can be achieved by providing a buffer in the receiver / decoder 2020, which is large enough to store a complete computer file. However, this can be expensive. Alternatively, the minimum data rate from the receiver / decoder 2020 can be estimated to the computer, divided between the expected data rate to the receiver / decoder 2020, to provide a rounded integer X, and then one can be downloaded into all X of blocks received to the computer, in such a way that N / X blocks are received in one phase, and then this phase can be repeated X times, in order to download all N blocks. However, for efficiency, this depends on the speed of data to the computer being estimated accurately, and this is not possible because the data rate may vary. In addition, serious problems with this method would arise if a particular data block were lost. As shown in Figure 7, in order to deal with these problems, the receiver / decoder 2020 is functionally configured during a PC download operation. The input bit stream from the receiver 2018 undergoes a block detection function 10, and then it can be passed through a selector 12 to an intermediate memory 14A or an intermediate memory 14B. The contents of a selected one of the memories 14A, Intermediate 14B can then be supplied, by means of a selector 16 and one selected from the parallel port 4032 and the serial port 4030, to a corresponding port of the PC 14. The intermediate memories 14B, 14B are provided by portions of the RAM of the receiver / decoder 2020, as well as a bitmap 20. The block detection function 10, the selectors 12, 16, the intermediate memories 14A, 14B, the ports 4032, 4030 parallel and in series, and the bit map 20 are controlled by means of a processor 22 executing the application of download PC. The operation of the receiver / decoder 2020 during a PC download operation will now be described, with reference to the flowcharts of Figures 8 to 12. During an initialization process, as shown in Figure 8, in step 24, the block detection function 10 detects a received block, and the number N of blocks is determined from a header for each of the blocks, which includes the number i of that block and the total number N of blocks. In step 26, the bit map 20 is set with a number of bits equal to the number N, and each bit is reset to 0. In steps 28, 30, both a buffer flag A and a flag of buffer B to "empty". In the example that is being described, the possible states of these flags are "empty", "filling", "filling" and "emptying". In step 32, an exit mode to the PC is established. Then, in step 34, the initialization process passes to the six processes shown in Figures 9, 10A, 10B, HA, 11B and 12, which are performed substantially in parallel. Figure 9 shows the routine controlling the start of discharge to the intermediate memories 14A, 14B. In step 36, the process waits until the block detection function 10 detects a new block. Once a new block is detected, in step 38, the block detection function 10 detects the number i of the new block. In step 40, a check is made in the bit map 20 as to whether the bit (s) is set to 1, and if so, the block is ignored and the process is returned to its beginning. If not, then in step 42, the flag of buffer A is tested to see if it is "empty", and if so, then in step 44 the flag of buffer A is set to "filling", and then in step 46 the unloading of the block into the buffer memory 14A is initiated by means of the selector 12, and then the process is returned to its beginning. If, in step 42, the flag of the buffer A is not set to "empty", then in step 48, the buffer flag B is tested to see if it is "empty". If so, then in step 50, the buffer flag B is set to "filling", and then in step 52 the downloading of the block into buffer memory 14B is initiated by means of selector 12, and then the process is returned to its beginning. If in steps 42 and 48, no buffer flag is set to "empty", then the process is returned to its beginning. Figure 10A shows the routine that is performed at the end of the download of a block to the intermediate memory 14A. In step 54, the process waits until the block detection function 10 detects the end of the block. Then, in steps 56, 58, the block is verified using a CRC included in the block. If the block is good, then in step 60, the flag of the buffer A is set to "full", while if the block is bad, then in step 62, the flag of the buffer A is set to "full", as a result of which the block will be ignored. As shown in Figure 10B, at the end of the download of a block to the intermediate memory 14B, a complementary routine is performed. Figure HA shows the routine that controls the download of a block from the buffer A to the PC 18. In step 64, the process waits until the buffer flag A is set to "full". Then, in step 66, a check is made as to whether the flag of the buffer B is set to "emptying", and if so, then the process waits until the intermediate memory 10B has finished emptying. Then, in step 68, the buffer flag A is set to "emptying".
Then, in step 70, the block i starts downloading into the intermediate memory 14A, via the selector 16, to the PC 18, using the output setting mode. In step 72, the process waits until the download is complete. Then, in step 74, a check is made for an acknowledgment from the PC 18. If recognition is received, then, in step 76, the bit b (i) for the block i in the bit map 20 is set to 1, and then, in step 78, the flag of the buffer B is set to "empty". Afterwards, the process returns to its beginning. If, in step 74, the acknowledgment is not received, then step 76 is omitted, and therefore the download of the block is ignored. As shown in Figure 11B, to control the download of a block from the intermediate memory 14B to the PC 18, a complementary routine is performed. Figure 12 shows the routine that verifies that the download of the computer file is complete. In step 80, a check is made as to whether all the bits b (l) ab (N) in the bitmap 20 are set to, and if so, then the file download operation is terminated as far as possible. with respect to the receiver / decoder 2020. From the foregoing, it will be noted that it does not matter in what order the blocks receive the receiver / decoder 2020. The receiver / decoder 2020 is able to determine if a block is needed, and if so, then it places the block in one of the intermediate memories 14A, 14B, and waits until the PC is ready to receive that block. If a block fails the verification of the CRC, or if the PC 18 does not properly recognize a block, then the receiver / decoder 2020 unloads the block again at the next available opportunity. In accordance with the above, if the receiver / decoder 2020 can download the blocks to the PC 18 as soon as the blocks can be downloaded to the receiver / decoder 2020, then most, if not all, of the blocks will be sequentially downloaded in order. However, if the receiver / decoder 2020 can not download the blocks to the PC 18 as soon as the blocks can be downloaded to the receiver / decoder 2020, for example, at only half the speed, then generally alternating blocks will be downloaded. speak during one phase, and then the remaining blocks will be discharged during a subsequent phase. If the ratio between the download speed to the receiver / decoder 2020 varies, at the download speed from the receiver / decoder 2020, then the configuration described above will automatically adjust the interleaving of the blocks. The memory requirements of the configuration described above, apart from for the operating software, are two intermediate memories 14A, 14B and the bitmap 20. Typically, the size of a block would be 2 kbytes (although up to 4 kbytes can be included in a single MPEG-2 table), and a maximum number of blocks in a file would be 216 blocks. Therefore, the memory requirement would be 4 kbytes for intermediate memories 14A, 14B and 216/8 = 8 kbytes for bitmap 20, making a total of 12 kbytes, to enable a file as large as 216 x 2 kbytes = 128 Mbytes to be downloaded. In the configuration described above, the PC 18 is programmed in such a way that, once each block has been received, that block is written to the hard disk of the PC 18 with a file name that includes the number i of the block. Then, once all the blocks have been received, the data is concatenated in the N files, in order to regenerate the original computer file. A modification to the configuration described above will now be described, with reference to Figures 5 to 12, to deal with the case where a connection between the transmission center and the receiver / decoder 2020 is lost. In this case, the receiver / decoder 2020 detects the lost connection, and you can ask the user if he wants to restart the download operation or not. If so, then the download of the file is requested, in the manner described above, except that step 26 is omitted in Figure 8, so that the bits b (l) ab (N) of the existing bit map 20 they are not set to zero. Therefore, it may be noted that the unloading operation will resume without requiring the re-unloading of the blocks that have already been unloaded. The concept of redundancy using an XOR function will now be described in detail. In the configuration described above with reference to Figures 5 and 6, the data blocks are considered to be a simple sequence of blocks 1 to N. In the configuration to be described now, it can be considered that the blocks are configured as a series of matrices, each containing (R + 1) rows and C columns of the blocks, as shown in Figures 13 to 15. As shown in Figure 14 in particular, in the first matrix (matrix 1), the upper row contains the blocks numbered i = 1 to C, the next row contains the blocks numbered i = C + the 2C, and so on up to the bottom row, which contains the numbered blocks i = RC + 1 a (R + 1) C. In the most general case of a matrix numbered j, as shown in Figure 15, the top row contains the blocks numbered i = (j-1) (R + 1) C + 1 a ((j-1) (R + D + DC and the bottom row contains the blocks numbered i = (j (R + l) - 1 (C) + 1 aj (R + 1) C. In the general position in row r and column c in the matrix j, the number of the blocks is i = ((j-1) (R + l) + (rl)) C + c In the matrices, the blocks in all the rows, except the bottom row (r = 1 a R) are blocks of data between which the computer file to be downloaded has been divided, however, the blocks in the lower row (r = R + l) are redundancy blocks that have been calculated and added within the MPEG bit stream through the application and data server 4006. More specifically, as shown in Figure 16, in step 100, the file to be downloaded is divided between data blocks, each of 2 kbytes. In step 102, the values of R and C are set. In step 104 , a counter j of matrix number a is set to l. In step 106, the first RC data blocks are read, which are considered as an array of C columns and R rows of the data blocks. In step 108, for each column c = 1 to C, a redundancy block is calculated for that column. More specifically, the redundancy block is calculated as an XOR operation by bits in the data blocks in the respective column. In step 110, it is considered that the redundancy blocks are an additional lower row (r = R + l) of the matrix. In step 112, the block numbers i = (j-1) (R + 1) C + 1 a (j (R + l) - 1) C are added as headers of the data blocks, the block numbers i = (j (R + l) - 1) C + 1 aj (R + 1) C are added as headers to the redundancy blocks, and the blocks are stored. In step 114, a test is made to see if the end of the file has been reached, and if not, in step 116 the counter j of the array is incremented. Then steps 102 to 108 are repeated for the following RC data blocks. This continues until the end of the computer file has been reached. Then an entry for the file is added to an index MPEG-2 directory or table, which includes the name, size and date stamp for the file, and the values of R and C. Then the processed data blocks and the blocks of redundancy are ready for transmission. When a user wishes to download that file, using the receiver / decoder 2020, it selects the entry for the file from the directory or index, and the receiver / decoder 2020 then supplies the file information, including the values of R and C to the file. PC 18. Then, during a PC download of that file, the receiver / decoder 2020 does not need to function in any way differently than in the manner described above with reference to Figures 7 to 12. However, the PC 18 is programmed (by a program loaded on PC 18 from a diskette or CD-ROM, or downloaded to PC 18 from the receiver / decoder 2020) to deal with redundancy blogs in the manner described below. In general, each time the PC 18 detects that a redundancy block has been downloaded, it checks if all but one of the blocks of data in the same column of the same matrix as the received redundancy block have been received. . If so, the PC regenerates the missing data block by performing an XOR by bit operation on the received data blocks and the received redundancy block, and stores the regenerated data block as if they had been received from the receiver / decoder 2020. More specifically, referring to Figure 17, in the initial step 120 the PC receives the values R, C, and then in step 122 receives a block. In step 124, the PC 18 extracts its block number i from the block header received. In step 126, PC 18 stores the block as block i. In step 128 it sends an acknowledgment to the receiver / decoder 2020. In step 130, PC 18 verifies if at least all but one (Rl) of the blocks in each of the columns C have been received. This can be done by checking a directory on the hard disk of PC 18, where they are stored the blocks, or preferably, for speed reasons, by using a bitmap in the memory of the PC 18, which is marked as each block is stored. If at least all but one of the blocks for each column have been stored, then sufficient blocks have been received, and the process proceeds to step 132, but if not, the process returns to step 122 to receive the next block. Step 132 controls a FOREXXT cycle. For each column, in step 134, PC 18 determines whether all data blocks for that column have been received (this is R-l data blocks). If so, then the cycle FOR-NEXT proceeds to the next column. However, if not, then in step 136, the PC 18 regenerates the missing data block by performing an XOR operation by bits in the data blocks that have been received and the redundancy block. Then, in step 138, the PC 18 stores the regenerated data block, and proceeds to the next column in the FOR-NEXT cycle. At the end of the FOR-NEXT cycle, the process proceeds to step 140, in which the computer file is regenerated from the received data blocks, and in step 142 the computer file is stored on the hard disk of the computer. PC 18. In step 134, the determination of whether a block is a data block or a redundancy block can be made, by verifying the veracity of the relation 0 < i - jRC = C, where the matrix number j is determined from j = int ((i-1) (R + 1) C) + 1, where int () refers to the part of the integer of () . If true, the block is a block of redundancy, and if it is false, it is a block of data. The configuration described above deals with two main problems. The first problem has to do with brief interruptions in the bitstream from the 2014 transceiver to the land receiver 2018. It will be noted that if a particular block i has been affected by that interruption, there is a relatively high probability that the following blog i + 1 will also be affected in the same row. The value of C is selected such that there is a relatively small probability that the next block i + C in the same column will also be affected. As long as R of the (R + l) blocks in each column are received properly, then the remaining block can be regenerated, using the redundancy block and the property of the XOR operation by bits. The other problem has to do with the effective speed at which the blocks are received towards the end of the file download operation. It will be noted that if only one block is expected, the waiting period can be almost as long as the time it takes to transmit all the blocks in the file. With the configuration described above, there is a high probability that if only a few data blocks would be expected otherwise, they can be regenerated from the redundancy blocks and data blocks that have already been received. Of course, it should be noted that the transmission of additional redundancy blocks adds to the total time to transmit a complete file, and therefore the advantages of dealing with transmission interruptions and reducing the waiting time for the last few blocks must be balanced. , against the disadvantage of the increase in the total transmission time, through the appropriate selection of the values of C and R. The selection of the values of C and R can be the subject of statistical or trial and error studies. However, typically the values can be C = 50 and R = 10. Preferably both C and R are greater than five. In the example described above, the values of C and R are determined when the file is prepared in blocks ready for transmission, and the values of C and R are included in the directory or index table for downloadable files. Alternatively, the values of C and R can be previously determined without their values being included in the directory or index table, and PC 18 can be reprogrammed with the values of C and R. In the example described above , the blocks are downloaded until enough blocks have been downloaded to allow the file to be regenerated. Then, the missing blocks are regenerated and the file is regenerated. In an alternative example, if the redundancy block for a particular column has been downloaded, the missing data block can be regenerated and marked as received at that stage, without waiting for sufficient blocks to be downloaded to allow the entire file to be regenerated . In the apparatus described above, the receiver / decoder 2020 is illustrated as being separate from the PC 18. It will be noted, however, that the receiver / decoder 2020 can form a part of the PC 18, for example, in the form of an addition card. 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), Card Intelligent to use with a Signal Receiver Transmission In Password, and Receiving System (Attorney Reference PC / ASB / 19708 number), Transmission and Reception and Conditional Access System for it (Lawyer Reference Number PC / ASB / 19710), Downloading a Computer File from a Transmitter through 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 (Lawyer Reference Number PC / ASB / 19713), Organization of Computer Memory (Lawyer Reference Number PC / ASB / 19714), Development of Television or Radio Control System (Lawyer Reference Number PC / ASB / 19715), Extracting Data Sections from a Transmitted Data Stream (Reference of Lawyer Number PC / ASB / 19716), Access Control System (Lawyer Reference Number PC / ASB / 19717), Data Processing System (Lawyer Reference Number PC / ASB / 19718), and Transmission and Reception System n, and Receiver / Decoder and Remote Controller for it (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 (10)

1. A method for downloading a computer file from a transmitter, by means of a receiver / decoder, to a computer, comprising the steps of: dividing the file into a number (N) of blocks; repeatedly transmit the blocks of the file from the transmitter, each with an identity of that block; and in the receiver / decoder: - providing a plurality of N flags that are initially reset, one for each block; and cyclically performing the steps of: - receiving one of the blocks transmitted at that time; and determine if the flag is set for that block; and if not, supply that block from the receiver to the computer, and set the flag for that block; until all the flags have been set.
2. A method as claimed in claim 1, wherein, after the supply step, the computer is configured to send a reception acknowledgment of the block supplied to the receiver / decoder, and where the set-up step for each block is performed in response to receipt of recognition for that block.
3. A method as claimed in claim 1 or 2, characterized in that it also includes the step of repeating the method of claim 1 or 2, before all the flags have been set, but without the step of resetting the flags.
4. A method for downloading a computer file from a transmitter, by means of a receiver / decoder, to a computer, substantially as described with reference to the drawings.
5. A receiver / decoder that is configured to receive MPEG video and / or audio data tables and computer file data blocks, wherein a computer file is received as a plurality of N of such blocks, which are received cyclically, and each of which includes an identification of that block, the receiver / decoder including: elements for storing a plurality of N flags that are initially reset, one for each block of computer file; elements to temporarily store a block of computer file received at that moment; elements for supplying the block stored in the block storage element to the computer; and control elements that are configured to determine whether the flag for the block received at that time is set in the flag storage element, and if not, to cause the block supply element to supply that block from the element storage of blocks to the computer, and to set the flag for that block in the flag storage element.
6. A receiver / decoder as claimed in claim 5, characterized in that it also comprises elements for receiving an acknowledgment from the computer that said block has been received from the block supply element, and wherein the control element is operable in such a way to set the flag for that block in response to receiving such recognition for that block.
A receiver / decoder as claimed in claim 5 or 6, wherein the control element is operable to cause the resumption of reception of the blocks of the computer file after a lost connection, without resetting the flags.
8. A receiver / decoder as claimed in any of claims 5 to 7, wherein the block supply element is one of a plurality of those block supply elements of different types.
9. A receiver / decoder as claimed in claim 8, wherein the plurality of block supply elements includes at least two of: an IEEE parallel port of ECP mode; an IEEE parallel port of byte mode; an IEEE parallel port of a four-bit group mode; and an RS-232 serial port.
10. A receiver / decoder substantially as described with reference to the drawings.
MXPA/A/1999/008542A 1997-03-21 1999-09-17 Downloading a computer file from a transmitter via a receiver/decoder to a computer MXPA99008542A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP97400650.4 1997-03-21

Publications (1)

Publication Number Publication Date
MXPA99008542A true MXPA99008542A (en) 2000-08-01

Family

ID=

Similar Documents

Publication Publication Date Title
JP4062367B2 (en) MPEG receiver / decoder and method for downloading data to an MPEG receiver / decoder
JP4162722B2 (en) Transmission and reception of TV programs and other data
CN100380967C (en) Smartcard for use with a receiver of encrypted broadcast signals, and receiver
RU2187207C2 (en) Signal generation and broadcasting
AU744977B2 (en) Broadcast and reception system, and receiver/decoder and remote controller therefor
CZ301220B6 (en) Conditional access system
JP2001519627A (en) Download data
AU740740B2 (en) Data processing system
WO1998043415A1 (en) Extracting data sections from a transmitted data stream
ES2205212T3 (en) DEVELOPMENT OF A CONTROL SYSTEM FOR TELEVISION OR RADIO FOR MPEG.
AU739663B2 (en) Downloading a computer file from a transmitter via a receiver/decoder to a computer
MXPA99008542A (en) Downloading a computer file from a transmitter via a receiver/decoder to a computer
KR20000076401A (en) Downloading a computer file from a transmitter via a receiver/decoder to a computer
CZ331199A3 (en) Retrieving computer file from a transmitter via a receiver(decoder into a computer
WO1998043172A2 (en) Access control system
MXPA99008546A (en) Extracting data sections from a transmitted data stream
MXPA99008545A (en) Access control system
MXPA99008549A (en) Method of downloading of data to an mpeg receiver/decoder and mpeg transmission system for implementing the same
MXPA99008550A (en) Broadcast and reception system, and receiver/decoder and remote controller therefor
CZ330799A3 (en) Apparatus for repeated generation of message set
MXPA99008544A (en) Signal generation and broadcasting
CZ330899A3 (en) Intelligent card intended for use in combination with receiver of coded transmitted signals and the receiver per se
MXPA99008547A (en) Television or radio control system development
CZ331499A3 (en) Arrangement of computer memory