The present disclosure is related to decoding encapsulated data and transport layer data and methods and apparatuses that facilitate correct decoding of received transport layer packets.
Real time video transmissions, such as provided by Digital Video Broadcasting (DVB) systems, cannot accommodate automatic repeat request (ARQ) mechanisms since the time required for data retransmission would unacceptably slow down and interrupt the flow of video data to the receiver. Therefore as some data will inevitably be lost due to various factors caused by the mobile environment, such as radio propagation delay and fading, video systems rely on error correction to maintain an acceptable level of quality with respect to the video stream.
For DVB systems such as DVB-H/SH, an “MFEC” (Multi-protocol Encapsulation Forward Error Correction) (also “MPE-FEC”) module was introduced to improve error correction capability in high mobility environments and also to save power. The Reed-Solomon (RS) (255, 191) code is used for error correction in an MFEC table and an erasure based RS (ERS) decoder or even a simplified ERS may be used in decoding. An MPEG Transport Stream Processor (MTSP) is used to create the MFEC table and generate corresponding erasure information for the ERS decoder in the next step. The most challenging task in designing the MTSP block is how to place all data into correct positions and provide erasure information accurately.
One approach is to only use the transport stream packet counter, that is, the Continuous Counter, to track lost transport stream (TS) packets. However this approach cannot handle the case of more than 16 lost packets. Another approach is to use the time information inside the MPE (Multi-protocol Encapsulation) section header to track IP packets. However this approach only performs well on fixed length IP packets and most streams utilize IP packets with variable length.
Other approaches only implement a simplified ERS decoder without erasure optimization in the decoding MFEC table. Approaches that implement a fully functioning ERS, however, decrease the throughput and cost more chip area. Decreasing system throughput is a more serious problem than costing more chip area, since most MFEC tables contain more than 512 rows, which means that the decoder is called 512 times for one table.
Therefore a need exists for methods and apparatuses that provide accurate Transport Stream (TS) packet tracking and that may also optimize the erasure information for different ERS decoders.
The present disclosure provides an accurate Transport Stream (TS) packet tracking method and apparatus that tracks TS packets based on estimating the TS packet arriving speed and the Continuous Counter (CC) inside TS packet header. The present disclosure also provides a method and apparatus for optimizing erasure information for different ERS decoders including a simplified ERS decoder.
One method disclosed herein includes estimating, by a lost packet determination logic, an expected number of packets, expected to be received within a time interval, based on packet arrival speed; and determining a number of lost packets using the expected number of packets and the packet counter wherein the packet counter counts a plurality of received packets. The method may determine the number of lost packets by comparing the expected number of packets to the packet counter and determining that the expected number of packets is greater than the packet counter; and then use the expected number of packets and the packet counter to determine the actual number of lost packets, where the actual number of lost packets exceeds a packet counter maximum of the packet counter. For example, the transport stream packet counter in DVB systems only accounts for sixteen packets.
Another method disclosed herein includes receiving a plurality of transport steam packets that encapsulate at least one multi-protocol encapsulation (MPE) packet including an MPE packet header, where the MPE packet further encapsulates a plurality of Internet Protocol (IP) datagrams. The MPE packet is received in an MPE frame that includes forward error correction (FEC) data for the MPE packet. The method then decodes the plurality of transport stream packets and, if it obtains a decoding failure, marks all bytes of the MPE packet including the MPE packet header as erasures, to take advantage of the large number of erasures that can be handled by the erasure-based Reed-Solomon decoder, and introduces the erasures to the ERS along with a plurality of successfully decoded MPE packets. The method may also introduce the erasures for decoding by a simplified erasure-based Reed-Solomon (ERS) decoder logic that includes only a Syndrome Calculation Unit and an Error Correlation Unit, but does not include a Key Equation Solver and a Chien Search Unit.
Another method includes receiving a portion of an MPE-FEC table, via a plurality of transport steam packets; determining that an error is possible in the MPE-FEC table; designating an area of the MPE-FEC table as an area of suspicion and marking all bytes in the area of suspicion as erasures. The method then introduces the erasures to a simplified ERS decoder logic and decodes the erasures along with a remainder of the MPE-FEC table. Determining that an error is possible in the MPE-FEC table may include detecting a conflict between a parity counter and a packet counter.
The present disclosure also provides an apparatus comprising a multi-protocol encapsulation forward error correction (MFEC) logic; a lost packet determination logic, operatively coupled to said MFEC logic, and operative to estimate an expected number of packets, expected to be received within a time interval, based on packet arrival speed; and determine a number of lost packets using the expected number of packets and a packet counter wherein the packet counter counts a plurality of received packets. The lost packet determination logic may also be operative to compare the expected number of packets to the packet counter (such as the transport stream Continuous Counter) and determine that the expected number of packets is greater than the packet counter; and determine the actual number of lost packets by the expected number of packets and the packet counter, where the actual number of lost packets exceeds the packet counter maximum, which is sixteen packets in the case of the TS Continuous Counter.
The lost packet determination logic may be further operative to determine the correct order of a plurality of received packets prior to providing the received packets to a decoder logic. A DVB receiver may include the above described logic.
The present disclosure further provides a computer readable memory, that includes executable instructions for execution by at least one processor, that when executed cause the at least one processor to perform the above described operations. The computer readable memory may be any suitable non-volatile memory such as, but not limited to programmable chips such as EEPROMS, flash ROM (thumb drives), compact discs (CDs) digital video disks (DVDs), etc., that may be used to load executable instructions or program code to other electronic devices such as those described in further detail herein below.
The various embodiments disclosed herein may be used in a variety of devices, such as, but not limited to, mobile handsets, DVB receivers (such as, but not limited to, set top boxes, DTV, etc.), and may be used with various DVB systems including DVB-H. Receivers and devices employing the teachings disclosed herein may thus exhibit improved DVB reception over receivers and devices that do not make use of the various embodiments or equivalents thereof.
Turning now to the drawings wherein like numerals represent like components,
The IP datagrams are encapsulated in an Application Data Table 201 and the RS parity data are provided in an RS data table 203. The MPE-FEC frames 103, and a corresponding MFEC module on the DVB receiver side, are utilized in DVB-H/SH systems to combat the Doppler frequency shifts that can occur in a high mobility environment and also to save power. The power savings aspects may be achieved in various ways, however, such methods are not within the scope of the present disclosure and are therefore not discussed herein.
As shown in
Such large continuous TS packet losses, and loss of the corresponding MPE section headers, may occur with high probability when a receiver is operating in, for example, a poor radio coverage area. Because of the strength of the erasure based Reed-Solomon (ERS) decoding, it would not be that critical to the system if some correct bytes were marked as erasures for a simplified ERS decoder used in the DVB-H/SH system, since the simplified ERS decoder is indeed sufficiently strong enough to handle the bytes correctly. Conversely however, the simplified ERS decoder will converge to an error codeword even if only a single error byte is erroneously marked as correct byte.
Therefore, two major approaches are described herein to improve the performance of the ERS decoder, including the simplified ERS decoder, used in DVB-H/SH systems.
Beginning in 401, the TS packet arrival speed is estimated. Then, in 403, and, for example, for two sequentially received TS packets that were received over a time period, the number of lost TS packets is estimated for the time period based on the expected TS packet arrival speed estimated in 401. In 405, if the number of estimated lost TS packets is not greater than the number of lost TS packets indicated by the TS packet counter, for example by the CC counter, then the number of lost TS packets is equal to the number of lost TS packets indicated by the TS packet counter as shown in 409. The TS packets may be placed into the correct order as shown in 411 and decoded as shown in 413.
However, if in 405 the estimated number of lost packets is greater than the number of lost packets indicated by the packet counter, the packet counter ambiguity is resolved in 407 to determine which, and/or how many, packets were lost. The received packets may then be placed into the correct order in 411 and decoded as shown in 413.
Another approach provided herein for improving ERS decoding in the various embodiments is to reduce the possibility of ordering or other errors by introducing packet erasures into areas of the MFEC table that may be considered suspicious, and take advantage of the large number of erasures that can be handled by the ERS decoder.
As discussed previously, an erasure based Reed-Solomon (ERS) decoder is used in decoding the MFEC table. It is well known that the ERS decoder is composed of a Syndrome Calculation Unit (SCU), Key Equation Solver (KES), Chien Search Unit (CSU) and an Error Correlation Unit (ECU). The KES is the most difficult part to implement and the CSU is the most time consuming unit in terms of processing time. However if erasure positions can be accurately pointed out, a simplified ERS decoder consisting of only an SCU and an ECU can be utilized to save chip area and increase the throughput of the system. This is possible in DVB-H/SH systems since the detection error ratio (the miss ratio, the ratio of an error packet declared as an errorless packet and the false alarm ratio, the ratio of an errorless packet declared as an error packet) of the RS decoder in DVB-H or the CRC error checker in DVB-SH is almost zero. The remaining issue is how to write all data along with corresponding erasure information into the correct position in MFEC table.
Since any false marking of error bytes as correct bytes will generate a severe problem for the simplified ERS decoder, in situations where it may be determined for certain that there is something wrong in writing the MFEC table, in the various embodiments, the entire smallest suspicious area may be marked as erasures. To find the smallest suspicious area, a receiver may track the offset of the last byte of the MFEC table that the receiver can be confident is reliable. Reliable means that on each row of the frame the correct byte positions are exactly known whereas any missing byte positions are unreliable.
The variables indicated in the flowchart 800 of
Simulation results have shown that the MFEC table error performance at 5% criteria will improve 50 Hz for streams with IP and burst size changing dynamically and consistently like most streams used in the real world. With the section tracking method as described above, the simplified ERS decoder could achieve similar performance to those using a fully implemented ERS decoder.
The operations of the various embodiments as described in the flowcharts may be implemented as, or using, various types of logic. The terms “logic” and/or “module” as used herein includes software and/or firmware executing on one or more programmable processors, ASICs, DSPs, hardwired logic or combinations thereof. Therefore, in accordance with the embodiments, the various logic and operations of the various flowcharts described herein, etc., may be implemented in any appropriate fashion as would be understood by one of ordinary skill and would remain in accordance with the embodiments herein disclosed.
Turning to
Other variations that would be equivalent to the herein disclosed embodiments may occur to those of ordinary skill in the art and would remain in accordance with the spirit and scope of embodiments as defined herein by the following claims.