The present invention relates to a device and method for receiving bursts in a communications network. More particularly, the present invention relates to a mobile device, especially a handheld terminal, to receive multimedia services over digital terrestrial broadcasting networks.
State-of-the-art document ETSI EN 302 304 V1.1.1 (2004-11) with the title “Digital Video Broadcasting (DVB); Transmission System for Handheld Terminals (DVB-H)” of the European Broadcasting Union describes the transmission system using digital video broadcasting standards to provide an efficient way of carrying multimedia services over digital terrestrial broadcasting networks to handheld terminals (DVB-H). Thereby, a full DVB-H system is defined by combining elements in the physical and link layers as well as service information. The link layer for DVB-H makes use of time-slicing in order to reduce the average power consumption of the terminal and enabling smooth and seamless frequency handover, and of multiprotocol encapsulation for transmission of IP-based data and Reed-Solomon parities. Forward error correction is applied on a multiprotocol encapsulation and forward error correction (MPE-FEC) frame for an improvement in the carrier to noise performance and Doppler performance in mobile channels, also improving tolerance to impulse interference resulting in a more robust receiver.
The conceptual structure of a DVB-H receiver includes a time-slicing module and an MPE-FEC module. The time-slicing module aims to save receiver power consumption while enabling to perform smooth and seamless frequency handover. The MPE-FEC module offers over the physical layer transmission, a complementary forward error correction allowing the receiver to cope with particularly difficult receiving conditions.
State-of-the-art document GB 2 406 483 A describes a method of transmitting bursts in a terrestrial digital video broadcasting network being used to transmit internet protocol datagrams to receiving devices using multiprotocol encapsulation. Thereby, application data is transmitted in bursts different from bursts for forward error correction data. Further, in order to save power, a controller instructs the receiver to listen for forward error correction data and receives forward error correction data, but if no error is detected in the application data burst, then to listen for application data only and skip the forward error correction data burst.
The method known from GB 2 406 483 A has the disadvantage that reception of the forward error correction data is necessary most of the time, because the multiprotocol encapsulation data is hardly error free.
It is an object of the invention to provide a device and a method for receiving bursts in a communications network with an improved receiving performance, especially with an improved power saving functionality.
This object is solved by a device as defined in claim 1. Advantageous developments of the invention are mentioned in the dependent claims.
The present invention has the further advantage that an early switch-off of the receiving unit may be provided to reduce the average power consumption of the device. This means that a significant power reduction is obtained when receiving a large number of bursts.
According to the measure as defined in claim 2, the application data is stored in an application data table having, for example, 1024 rows and 191 columns, and the error correction data is stored in a Reed-Solomon data table having, for example, 1024 rows and 64 columns. In such a case, error correction is processed individually on each of the rows of the frame comprising both the application data table and the Reed-Solomon data table. That means that the Reed-Solomon decoder processes a row comprising both application data and error correction data. But, the decoder unit may perform the error correction only with a part of the error correction data. The amount of error correction data necessary for a successful decoding depends on the amount of correctly received application data. The decoder unit determines the amount of necessary error correction data on the basis of the data received, wherein this decision is made individually for each frame or each burst.
The measure as defined in claim 3 has the advantage that the computational burden is relatively small. Hence, a fast decision is possible to determine the amount of error correction data necessary for successful error correction. Further, the error amount may be determined in advance before receiving or analyzing individual symbols of the error correction data. Thereby, according to the measure as defined in claim 4, a column of the application data table counts as erroneous when it comprises one or more erroneous symbols.
The measure as defined in claim 5 has the advantage that the error amount is determined row-wise so that the determination of the amount of error correction data necessary for a successful error correction is optimized. Hence, an earlier switch-off of the receiving unit is enabled in the average compared to a column-wise determination of the error amount. In this case, an error or erasure information relating to the individual symbols of the application data table and perhaps the Reed-Solomon data table may be used to determine the number of erroneous symbols of a row of the application data table and perhaps the Reed-Solomon data table. When limiting the determination of the amount of error correction data necessary for a successful error correction to the application data table part of the row of the frame, an error amount determination is possible before reception of the error correction data. But, the symbols of the error correction data stored in the Reed-Solomon data table part of the frame may also be used to determine the error amount of error correction data necessary for a successful error decoding to refine the error amount determination. Therewith, an earlier receiving unit switch-off may be provided, as suggested by the measure as defined in claim 9. But, the measure as defined in claim 8 provides an error amount determination with a reduced computational burden.
According to the measure as defined in claim 10 the timing for an end of reception is optimized.
According to the measures as defined in claim 11 and 12, further parameters may be used to optimize error correction. For example, according to the measure as defined in claim 12, a security distance may be used, to allow error correction, even when some undetected errors are occurring during data processing.
These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter.
The present invention will become readily understood from the following description of preferred embodiments thereof made with reference to the accompanying drawings, in which like parts are designated by like reference signs and in which:
The device 1 according to the preferred embodiment comprises a receiving unit 2. The receiving unit 2 receives consecutive bursts via the communications network and outputs a transport stream over a channel 3. Thereby, each of the bursts may comprise multiprotocol encapsulation data containing IP-data as possible forward error correction data. Thereby, different bursts may be transmitted over different channels. Timing offset information may be provided to indicate the timing between succeeding bursts. In case of digital video broadcasting for handheld terminals, such a timing offset information is known as “delta-t”.
Further, the device 1 comprises a demultiplexer 4. The demultiplexer 4, is, for example, arranged as a MPEG-2 Transport Stream demultiplexer, wherein the moving picture compression standard MPEG-2 targets studio-quality television and multiple CD-quality audio channels at 4 to 6 Mbps and has also been extended to optimally address high-definition television (HDTV). But, other coding standards, especially for coding of moving pictures and associated audio, may also be provided by the demultiplexer 4. The demultiplexer 4 receives the transport stream over the channel 3. The demultiplexer 4 comprises packet identifier (PID) filters 5, selecting the transport stream packets of an elementary stream. The packet identifier filters 5 are used in combination with service information (SI) and program specific information (PSI) filters 6 and de-encapsulation filters 7 for filtering of service information, program specific information and application information. Selected SI/PSI sections are stored in their corresponding queues 8 and transmitted by a queue manager 9. The selected service information is subjected to several operations before it is transmitted via a serial peripheral interface (SPI) 10 and a channel 11 to an application engine.
Sections filtering of the service information and program specific information filters 6 are accompanied by a cyclic redundancy check (CRC) 12. De-encapsulator filtering by the de-encapsulation filter 6 is accompanied by a cyclic redundancy check 13 as well as a check sum calculation 14. The cyclic redundancy check 12, the cyclic redundancy check 13 and the check sum calculation 14 are sources for error information. A further source for error information is a transport error indicator in a transport stream packet main header. When an error occurs, an error flag generation unit 20 of the demultiplexer 4 generates an erasure flag for the corresponding datagram fragments. Thereby, a datagram is a network layer data frame. In the case of internet protocol, a datagram is an internet protocol datagram. In general, a datagram is a network layer packet with full address information enabling it to be routed to the endpoint without further information. The receiving unit 2 receives bursts comprising sections. Datagrams are encapsulated in sections, and when an error occurs in anyone of those sections, the erasure flag generation unit 20 generates an erasure for the datagram of the erroneous section.
The application data received in the form of datagrams and the error correction data received is sent from the demultiplexer 4 to a memory unit 22. The memory unit 22 comprises a memory, and a frame in that memory is arranged to store the datagrams received, as described in detail with reference to
The device 1 comprises an internet protocol readout unit 24 and a decoder unit 25. The decoder unit 25 is adapted to perform a forward error correction on the data stored in the frame of the memory unit 22. After forward error correction processing, the multiprotocol encapsulation data is sent to the queue manager 9 via the internet protocol readout unit 24. The internet protocol readout unit 24 identifies datagrams in the MPE-FEC memory of the memory unit 22. Therefore, it analyses a header information of each of the datagrams and reads its length information. A control and power saving unit 26 is connected with the demultiplexer 4, the memory unit 22, the decoder unit 25, the internet protocol readout unit 24, the queue manager 9 and the SPI 10 for control and power saving operation. Further, the control and power saving unit 26 is connected with the receiving unit 2 to switch off the receiving unit 2 between the bursts received and, perhaps, before the end of an individual burst. The control and power saving unit 26 receives data from an interchip communication channel (I2C) 27. The control and power saving unit 26 receives internet protocol entry data from the entry table generation unit 21 and sends those data to the internet protocol readout unit for internet protocol readout. Further, the demultiplexer 4 may have one or more outputs, for example an output 28 for a partial or full transport stream for other services, such as terrestrial digital video broadcasting.
Further, the device 1 comprises an error amount determination unit 30. The error amount determination unit 30 determines an error amount of erroneous application data received, and, may further determine an error amount of error correction data, especially Reed-Solomon parities, received. Thereby, the error amount determination unit 30 determines the error amount with reference to the positions of the symbols of the datagrams in the frame of the memory of the memory unit 22, as described in further detail with reference to
The number k of rows in the frame 32 is signaled in a descriptor of the received stream. All multiprotocol encapsulation sections and multiprotocol encapsulation forward error correction sections are protected by a CRC-32 code, which reliably detect all erroneous sections. For every correctly received section belonging to the application data table 35 or to the Reed-Solomon data table 36, the start address of the payload within the section is determined from the section header to put the payload in the right position of the respective table 35 or 36. But, some sections or fragments of sections may be lost during transmission so that a number of holes may remain in the application data table 35 and/or the Reed-Solomon data table 36. All correctly received bytes and application data padding, shown by the symbols Aij, are then regarded as reliable and all byte positions in the holes are marked as unreliable. Further, punctured columns of the Reed-Solomon data table 36 are also marked as unreliable for Reed-Solomon decoding. Hence, each symbol Aij and Ril is marked as either reliable or unreliable. It should be noted that this error information is an erasure information, because the position, i.e. the position of the symbol Aij or Ril, of the error is known. The decoder unit 25 may then correct up to 64 symbols Aij or Ril in each row i, that means for each 255-Byte codeword.
The error amount determination unit 30 provides two different methods to determine an error amount of erroneous application data received. A first method to determine the error amount of erroneous application data received is described in further detail with reference to
Then, the error amount determination unit 30 calculates the sum of all m(j) for 1≦j≦191. The result is the number of erroneous columns. Hence, with this first method the error amount determination unit 30 determines the error amount of erroneous columns as the number of columns j, each comprising at least an erroneous symbol Aij.
The sum of m(j) determined equals the amount of error correction data that is necessary for the decoder unit 25 to perform a successful error correction. In case of RS [255, 191, 64], wherein 255 is the number of columns of the frame 32, 191 is the number of application data columns and 64 is the number of Reed-Solomon data table columns, the sum of all m(j) must be lower than 65.
The error amount determination unit 30 determines, whether columns 1 of the Reed-Solomon data table 36 are erroneous or not, while the associated stream is received by the receiving unit 2. When the number of correctly received columns 1 of the Reed-Solomon data table 36 is greater or equal to the sum of m(j) for j greater or equal to 1 and lower or equal to 191, then the error amount determination unit 30 determines that the amount of correctly received Reed-Solomon parities is not less than the amount of Reed-Solomon parities necessary to perform the error correction. Hence, the error amount determination unit 30 sends the result of this decision to the control and power saving unit 26. The control and power saving unit 26 then requests an early receiving unit 2 front-end switch-off. The not received columns with Reed-Solomon parities are designated as erasures.
The error amount determination unit 30 may send the signal to the control and power saving unit 26 when the number of correctly received columns of the Reed-Solomon data table 36 is equal to the sum of all m(j). But, a safety distance may be provided. In case of such a safety distance, the error amount determination unit 30 determines when the number of correctly received columns of the Reed-Solomon data table 36 is equal to the sum of all m(j1) plus a safety distance. Hence, a few more columns of Reed-Solomon data are received as necessary by the decision based on the m(j)-values. Hence, the duration of reception is increased in accordance with the amount of the safety distance. Then, the decoder unit 25 may perform a successful error correction, even when undetected errors are hidden in the application data table 35 or the error correction data table 36 of the frame 32.
First, determination of the error amount with respect to the whole row, as already received, is described. While the symbols Aij and Ril are stored at their corresponding position in the frame 32, the error amount determination unit 30 determines the number m(i) of erasures for each row i. Thereby, unfilled positions in the frame 32, i.e. holes in the frame 32 due to missing data or not yet received symbols Aij, Ril count as one error per missing symbol Aij or Ril. After storing the application data in the application data table 35, Reed-Solomon parities may be necessary. And, Reed-Solomon parities Ril are stored at their corresponding position in the Reed-Solomon data table 36 during reception. As shown in
Optionally, the number of correctly received symbols is counted. If all rows i have 191 or more correctly received symbols Aij and Ril, then the received Reed-Solomon parities are sufficient and the remaining Reed-Solomon data is not needed anymore in order to reconstruct the frame 32.
It should be noted that a safety distance may be provided. In such a case, the maximum number of erasures for each of the rows i is set to a value below the maximum error correction capability of the decoder unit 25, for example to a value that is lower than 64.
It should be noted that the computational burden may be reduced by an error indicator field 41 of the table 40. Thereby, a bit is associated to each number m(i) of erasures in row i. When the number m(i) of erasures in row i is smaller or equal to the error correction capability of the decoder unit 25, this flag is set to 0. Therefore, the error amount determination unit 30 may count the raised flags in the error indicator field 41 to determine, whether the amount of Reed-Solomon parities received is sufficient for error correction. The amount of error correction data received is sufficient, when all bits in the error indicator field 41 are set to “0”. An advantage is that the error amount determination unit 30 may only monitor rows i having a number m(i) of erasures that is greater than the error correction capability of the decoder unit 25.
The error amount determination unit 30 may also determine the error amount only with respect to the symbols Aij of the application data table 35. In such a case, after reception of the application data 35, the number m(i) of erasures limited to the application data table 35 part of each row i is determined. The maximum of the numbers m(i) for all rows i is then used to determine the error amount of erroneous application data received. Then, this maximum is used to determine the amount of error correction data that is necessary for the decoder unit 25 to perform the error correction. The error amount determination unit 30 determines the amount of correctly received error correction data as the number of correctly received columns 1 of Reed-Solomon data. When the number of correctly received columns 1 of Reed-Solomon parities is equal to or greater than the maximum of the numbers m(i), then the error amount determination unit 30 sends a signal to the control and power saving unit 26 to request an end of reception of Reed-Solomon parities. Then, the control and power saving unit 26 controls the receiving unit 2 to perform an early receiving unit 2 front-end switch-off.
It should be noted that the number m(i) of erasures in a row i is an example for a row error number determined with respect to a row i. Further, the maximum number m(i) of erasures with respect to all rows i is an example for a maximum row error number.
Although exemplary embodiments of the invention have been disclosed, it will be apparent to those skilled in the art that various changes and modifications can be made which will achieve some of the advantages of the invention without departing from the spirit and scope of the invention. Such modifications to the inventive concept are intended to be covered by the appended claims in which the reference signs shall not be construed as limiting the scope of the invention. Further, in the description and the appended claims the meaning of “comprising” is not to be understood as excluding other elements or steps. Further, “a” or “an” does not exclude a plurality, and a single processor or other unit may fulfill the functions of several means recited in the claims.
Number | Date | Country | Kind |
---|---|---|---|
05112278.6 | Dec 2005 | EP | regional |
PCT/IB2006/054813 | Dec 2006 | IB | international |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB06/54813 | 12/12/2006 | WO | 00 | 6/16/2008 |