Apparatus and methods for interleaving in a forward link only system

Methods and devices for encoding and interleaving data packets for broadcast and for de-interleaving and decoding data packets in a communication system eliminate detrimental biasing effects by using pseudo-random M-sequence bit encoding as part of the turbo encoding and decoding. The use of pseudo-random M-sequence bit encoding mitigates biasing effects that may otherwise be introduced if conventional r-c interleaving is applied to long turbo encoded data which would degrade reception in the presence of broadcast interference.

BACKGROUND

MediaFLO® and Forward Link Only (FLO) is a digital wireless technology that has been developed by an industry-led group of wireless providers. The MediaFLO® technology was designed in one case for a mobile multimedia environment and exhibits performance characteristics suited for use on cellular handsets. It uses advances in coding and interleaving to achieve high-quality reception, both for real-time content streaming and other data services. MediaFLO® technology can provide robust mobile performance and high capacity without compromising power consumption. The technology also reduces the network cost of delivering multimedia content by dramatically decreasing the number of transmitters needed to be deployed. In addition, MediaFLO® technology-based multimedia multicasting complements wireless operators' cellular network data and voice services, delivering content to the same cellular handsets used on 3G networks.

It happens that when a signal is broadcast, it can propagate to a receiver by more than one path. For example, a signal from a single transmitter can propagate along a straight line to a receiver, and it can also be reflected off of physical objects to propagate along a different path to the receiver. Moreover, it happens that when a system uses a so-called “cellular” broadcasting technique to increase spectral efficiency, a signal intended for a receiver might be broadcast by more than one transmitter. Hence, the same signal will be transmitted to the receiver along more than one path. Such parallel propagation of signals, whether man-made (i.e., caused by broadcasting the same signal from more than one transmitter) or natural (i.e., caused by echoes) is referred to as “multipath”. It can be readily appreciated that while cellular digital broadcasting is spectrally efficient, provisions must be made to effectively address multipath considerations.

Fortunately, modulation techniques such as Quadrature Amplitude Modulation (QAM) in Orthogonal Frequency Division Multiplexed (OFDM) systems, which include MediaFLO® systems, are more effective in the presence of multipath conditions than are similar modulation techniques in which only a single carrier frequency is used. More particularly, in single carrier QAM systems, a complex equalizer must be used to equalize channels that have echoes as strong as the primary path, and such equalization is difficult to execute. In contrast, in OFDM systems the need for complex equalizers can be eliminated altogether simply by inserting a guard interval of appropriate length at the beginning of each symbol. Accordingly, OFDM systems that use QAM modulation are preferred when multipath conditions are expected.

A data stream to be transmitted is encoded with a convolutional or turbo encoder and interleaved, and then successive bits are combined in a bit group that will become a QAM symbol. Several bits are in a group, with the number of bits per group typically ranging from four to seven, although groups may include more or less bits.

Interleaving of the data before bits are grouped into multi-bit symbols helps to ensure that consecutive bits of the input data stream will not land on the same QAM symbol, which could cause an error in decoding of that symbol that could result in a burst of bit-errors. By “interleaving” it is meant that the data stream is rearranged in sequence, to thereby randomize potential errors caused by channel degradation. To illustrate, suppose five words are to be transmitted, and during transmission of a non-interleaved signal, a temporary channel disturbance occurs. Under these circumstances, an entire word can be lost before the channel disturbance abates, and it can be difficult if not impossible to know what information had been conveyed by the lost word.

In contrast, if the letters of the five words are sequentially rearranged (i.e., “interleaved”) prior to transmission and a channel disturbance occurs, several letters might be lost, perhaps one letter per word. Upon decoding the rearranged letters, however, all five words would appear, albeit with several of the words missing letters. It will be readily appreciated that, under these circumstances, it would be relatively easy for a digital decoder to recover the data substantially in its entirety. After interleaving the m-ary symbols, the symbols are mapped to complex symbols using QAM principles, multiplexed into their respective sub-carrier channels, and transmitted.

Recent developments in MediaFLO® system communications have sought to employ turbo encoders which encode each physical layer packet (PLP) separately. Additionally, developments seek to employ long turbo encoders with time diversity enhancements and for improved performance in fading channels. These evolutions to the MediaFLO® system are sometimes referred to as FLO-EV. Disclosure of long turbo encoders and encoding methods are disclosed in U.S. patent application Ser. No. 12/165,663, entitled “Wireless Communication of Turbo Coded Data with Time Diversity” filed Jul. 1, 2008 and published on Oct. 29, 2009 as U.S. Patent Publication No. 2009/0268694, the contents of which are hereby incorporated by reference in their entirety. However, use of long turbo codes with known encoder/interleavers has exhibited performance degradation issues. For example, the use of long turbo coders with conventional interleaving techniques have resulted in the biasing to particular packets or frames within an OFDM superframe. Accordingly, a need exists for interleaving in a FLO system that does not introduce biases and affords better performance with long turbo codes.

SUMMARY

The various embodiments provide methods and devices for encoding and interleaving data packets for transmission in a broadcast communication system. The various embodiments may utilize a plurality of long turbo encoders to encode a codeblock and an M-sequence intra-codeblock interleaver configured to interleave bits within at least one encoded long turbo code packet from the turbo encoder in a superframe. In an embodiment, only a single codeblock of turbo-encoded information is produced, eliminating the need for inter-codeblock interleaving. Some embodiments use an inter-codeblock interleaver.

In embodiment, the inter-codeblock interleaver uses a large M-Sequence eliminating the need for an intra-codeblock interleaver since an intra-codeblock interleaver would not provide any additional randomization.

Additional embodiments de-interleave and decode data packets received by a receiver device in a broadcast communication system using M-sequence de-interleavers and decoders which correspond to the encoders and interleavers used in the transmission of the received data signals.

DETAILED DESCRIPTION

As used herein, the terms “mobile device” and “handheld device” refer to any one or all of cellular telephones, personal data assistants (PDA's), palm-top computers, wireless electronic mail receivers (e.g., the Blackberry® and Treo® devices), multimedia Internet enabled cellular telephones (e.g., the Blackberry Storm®), Global Positioning System (GPS) receivers, wireless gaming controllers, and similar personal electronic devices which include a programmable processor and memory and receiver circuitry for receiving and processing mobile broadcast television services.

The various embodiments disclosed herein relate to apparatus and methods for interleaving that are particularly useful for the broadcast technologies and interference conditions experienced in a number of mobile multimedia broadcast systems. A multimedia mobile broadcast system technology to which the embodiments are particularly relevant is the MediaFLO-EV evolution system, which uses long turbo coding that encodes over all Physical Layer Packets (PLPs) comprising a code block. For this reason, the various embodiments are described using the terminology, characteristics and structures of MediaFLO as an illustrative example. However, the embodiments may also be applicable to other broadcast systems that use long turbo coding encompassing relatively long superframes, an example of which would be the broadcast systems using the Advanced Television Systems Committee mobile/handheld (ATSC M/H) standard protocol modified to perform long turbo coding over M/H frames (which include five M/H sub-frames). By smearing a data stream randomly and more or less equally over the duration of a long superframe, the embodiments avoid the problems of conventional encoding system that can cause a burst of data concentrated within a narrow time interval, rendering the transmissions susceptible to high error rates in the presence of some interference conditions.

The various disclosed embodiments optimize performance and implementability and ensure that no biases are introduced by the use of long turbo encoding methods. Conventional interleaving techniques applied to symbols encoding using a long turbo code have been found to result in a bias. Typically, data transmitted in a MediaFLO® communication system is sent in one-second frames. Each of the frames is divided into four subframes. When conventional interleaving techniques are implemented in a FLO communication system using long turbo codes, the performance of the system may vary depending upon which subframe is lost in transmission. For example, if the first or fourth subframe is lost, the system may require more time to reconstruct the lost data symbols than if the second or third subframe is lost. Since the performance of the system is dependent upon which subframe is lost in transmission, a bias may develop which can result in uneven degradation of the communication system, depending on the frame affected.

The disclosed embodiment methods and apparatus provide for interleaving of MediaFLO FLO data signals, including intra-codeblock bit interleaving, inter-codeblock bit interleaving, intra-interlace symbol interleaving, and inter-interlace symbol interleaving using M-sequence bit interleaving to mitigate any introduced bias.

The descriptions of the embodiments describe interleaving of data streams in a FLO-EV evolution of the MediaFLO standard. However, the embodiment methods and apparatus may be used in other communication systems, such as DVB. In a MediaFLO FLO-EV communication system, Long Turbo Coding (LTC) may be implemented to encode over all 16 Physical Layer Packets (PLPs) comprising a codeblock. After turbo encoding, various levels of interleaving are performed which differ from existing MediaFLO standard (TIA-1099). The disclosed embodiments improve performance and address asymmetry in terms of resilience to frame erasure.

FIG. 1is a system block diagram illustrating a wireless network system100typical of broadcast networks in general, and of a MediaFLO® network in particular. The wireless network system100includes one or more transmitters102that broadcast data (e.g., multimedia data) across a wireless network104to one or more receivers106. The receivers106can include substantially any type of communicating device such as a MediaFLO® receiver device, cell phone, computer, personal assistant, hand held or laptop devices, and so forth. Portions of the receiver106are employed to decode transmitted signals and other data such as multimedia data.

FIG. 2is a component block diagram illustrating a MediaFLO® communication system200that includes a FLO broadcast system202, at least one content provider203, and at least one receiver device204. The FLO broadcast system202may receive audio and/or video content from one or more content providers203via a receiver server210. Receiver server210can receive information via the Internet and pass the data to a broadcast encoder server212that converts the received multi-media content into a format compatible with FLO broadcast transmissions. FLO-encoded data packets may be selected for broadcast by a scheduler server214which is coupled to a memory216for storing content for its broadcast time.

To broadcast FLO content, video content stored in memory216or received from the broadcast encoder server212is selected and retrieved by the scheduler server214to a FLO multiplexer server218. The FLO multiplexer server218multiplexes a plurality of content flows into a single FLO multiplex signal by allocating content data symbol streams to a specific MediaFLO Logical Channel (MLCs) for transmission in the FLO broadcast signal. Before broadcast, the content data symbol streams are processed by an encoder/interleaver module219that processes the data symbol streams to render them robust to interference and fading by turbo encoding and interleaving the data packets. The encoder/interleaver module219may turbo encode the data symbol stream, and the encoded data symbol stream may then be interleaved. By interleaving the data stream, the encoder/interleaver module219sequentially re-arranges the data symbol stream to provide another level of error correction and protection from signal interference. Embodiment methods implemented within the encoder/interleaver module219are described in more detail below.

A modulator220can modulate the encoded and interleaved signals into a single multiplexed wireless signal for transmission by a transmitter222through a transmit antenna (not shown) to receiver devices204. In a FLO broadcast system, multiple broadcast transmitters within a coverage area broadcast the same signal approximately simultaneously. This enables receiver devices204to receive the broadcast multi-media content from any location within the coverage area even while moving about. To enable this, multiple modulators220and transmitters222are used in a broadcast coverage area.

FIG. 3is a component and process flow diagram illustrating a conventional method for encoding and interleaving data in module219according to the TIA-1099A standard for MediaFLO. In TIA-1099A the data associated with a MediaFLO Logical Channel (MLC)301for any particular superframe consists of J codeblocks, each containing K information packets. For each codeblock within the MLC, information packets may be Reed-Solomon encoded in encoder module302using a (K,16) code, and the 16 packets that comprise the output of the Reed-Solomon encoding step302may be individually encoded with turbo encoder using rate R, step303. The input packets are 1 Kbits long. Therefore the resulting packets at the output of the turbo encoder are 1K/R in length.

Each of the individual encoded packets in the encoding and interleaving module219ofFIG. 3is bit-interleaved using a row-column (r-c) interleaver module304. The output packets of this operation may be combined with the packets belonging to the other codeblocks and interleaved in a Round-Robin fashion via Round-robin inter-codeblock interleaver, step320. The round-robin fashion interleaving process involves taking the first packet of the first codeblock, followed by the first packet of the second codeblock etc., until the first packet of the J-th codeblock is reached. At that point the operation continues with the second packet of the first codeblock and so on, until all 16 packets of all J codeblocks have been interleaved.

The encoder/interleaver module219may then form an integer number of slots of bits and scramble the output bits of the round-robin inter-codeblock interleaver in each formed slot in step321. The output bits of the scramble operation may be mapped to slots consisting of 1000 or 2000 bits for QPSK and 16 QAM modulation of the MLC, respectively, in step322. The bits in each slot may also be mapped to 500 modulation symbols per slot. The slots may then be mapped to interlaces using a slot-to-interlace map in step323.

The modulation symbols may be interleaved within the interlace using a reduced-set bit-reversal interleaver and mapped to the subcarriers in the interlace, step324. The interlaces may be combined to form OFDM symbols, step325. Subsequent OFDM common operations may be performed on the formed OFDM symbols in step326before the symbols are modulated in modulator220for transmission. In the original MediaFLO technology, each physical layer packet (PLP) is turbo encoded separately, and thus no bias was introduced. However, the implementation of this encoding and interleaving structure in a broadcast system employing Long Turbo Code (LTC), as in the FLO-EV technology, may result in a bias that variably degrades the communication system performance depending upon which transmitted subframe is not properly received by the receiver devices204.

To overcome the limitations of previous encoding technology with long turbo codes, the various embodiments encode data packets to generate pseudo random noise sequence of bits. By rendering the data pseudo random, the potential for bias is minimized. The embodiments utilize the M-sequence encoder method that is typically used for encrypting data, and not for protecting data from interference and fading.

FIG. 4illustrates an embodiment encoding/interleaving method for the MediaFLO FLO-EV. Instead of encoding input bits with a Reed-Solomon encoder and then individually turbo encoding the bits as described above in conventional TIA-1099A standard, the embodiment encoder/interleaver module219concatenates the 16 input packets and encodes the entire concatenated codeblock410using a Long Turbo Encoder (LTC) in step411.

Once the entire codeblock has been turbo encoded, an intra-codeblock M-sequence bit-interleaving operation is performed on the turbo encoded codeblock in step412. The M-sequence bit interleaver generates a maximum length pseudo random noise sequence in a shift register at each clock pulse cycle. The generated pseudo random noise sequence may be interpreted as an address location in the input buffer. As such, all of the input bits for a particular codeblock need to be received before the operation can commence. In the M-sequence bit interleave process, an M-Sequence generator is used in the encoder/interleaver process to generate address locations to denote bit-indices in the input buffer from which a bit is recalled to add to the bit string for each individual codeblock stored in the output buffer memory. At the next clock pulse a new memory address location is generated by the pseudo random noise generator. This process is illustrated inFIG. 5A. In addition, the next turbo encoded bit of the codeblock is obtained from the input buffer by the M-sequence bit interleaver412using the new generated pseudo random noise sequence address location and stored to the output buffer using a simple incrementing counter to generate the address in that memory. This process may continue until 2M−1 address locations are generated. In this manner the turbo encoded bits of the codeblock may be randomly re-ordered and shuffled. When used for encrypting data, this process results in a near random sequence of bits that cannot be processed to recognize patterns. In the embodiments, the M-sequence bit interleaver process is used to shuffle information words in the signal stream in a pseudo random fashion before being mapped to modulation symbols to render a signal that is robust against fading.

The encoded and bit-interleaved packet may then be subdivided into an integer number of equal-sized subpackets, step413. At this point each codeblock consists of F subpackets of size 16K/(F*R) where R is the code rate. When F is chosen to be equal to 16, the operation of the old and new inter-codeblock interleaver become identical, but in the various embodiments a larger value of F is used. As a result of using a larger number of subpackets, each subpacket will be smaller in terms of absolute number of bits than the packets handled by the inter-codeblock interleaver in conventional TIA-1099A techniques. In an example embodiment F is to set the value of F=80.

One of skill in the art may appreciate that minor modifications of the embodiment methods are possible. For instance instead of dividing the encoded packet into F subpackets each of a length that depends on the code rate R, the encoded packet can also be divided into fixed-length packets of some length L that is independent of the code rate. In that case there will be floor (16K/R*L) of packets of length L, with possibly some left-over bits. Any left-over bits are treated like a final subpacket of length<L.

The process of turbo encoding, M-sequence bit interleaving and forming subpackets is accomplished in parallel in a plurality N of encoder/interleaver modules to generate a plurality N of intra codeblock interleaved bit streams which are round robin interleaved in step320. Thus, the plurality of encoder/interleaver modules include a plurality of long turbo encoders, a plurality of M-sequence bit interleavers, and a plurality of subpacket formers. The plurality of encoder/interleaver modules generate a plurality of turbo encoded codeblocks, each of which are interleaved using the M-sequence bit interleaving scheme to generate a plurality of M-sequence bit interleaved bits sequences that are formed into a plurality of subpackets.

Once these encoded and interleaved bits are arranged into integer number (F) sub-packets of bits, step413, the codeblock sub-packets are ready for processing using conventional interleaving processes of steps320-326described above with respect toFIG. 3. The Round-Robin interleaver, step320, used in the embodiment encoder/interleaver module may be identical in structure to the one present in IS-1099A, except that it operates on subpackets of the 16K turbo encoder output, instead of whole packets of the 1K turbo encoder.

The embodiment encoder/interleaver module ofFIG. 4solves performance problems that arise in long turbo code systems using a conventional encoder/interleaver module design as shown inFIG. 3. The design ofFIG. 4also resolves an asymmetry that can arise with respect to frame erasure if the conventional r-c interleaving is used in long turbo coded designs. Using the conventional design ofFIG. 3to process long turbo coded superframes may result in performance degradation from the erasure of an entire frame depending on which of the 4 frames in a MediaFLO superframe is erased, such as due to fading. This difference in performance degradation is referred to as a bias. The design ofFIG. 4is not sensitive to such bias since the content data is distributed throughout the frames in a pseudo random manner. It should be appreciated, however, that the performance degradation issue in long turbo coding system addressed by the embodiments is not present in conventional MediaFLO® systems in which each packet is individually turbo coded.

The structure of the embodiment illustrated inFIG. 4implements a transmission chain that is different from the conventional structure ofFIG. 3; that is steps411-413replace steps302-304, respectively. Also, the embodiments also eliminate the Reed-Solomon encoder. The data associated with an MLC consists of N codeblocks each containing a single 16K information packet. The packet is turbo-encoded using a 16K long turbo encoder of rate R in step411. The output packet of this operation is of length 16K/R. This entire packet is then bit-interleaved all at once using a reduced-set M-sequence generator-based interleaver in step412.

In various embodiments other information packet sizes can be used, such as 4K and 8 Kbits. Also different types of interleavers can be used, in place of the M-Sequence interleaver in step412, or the Round-Robin interleaver in step320. One such alternative embodiment is discussed below with reference toFIG. 6.

Thus, in contrast to the codeblock301of the conventional encoder/interleaver design shown inFIG. 3, the embodiment encoder/interleaver turbo encodes the entire codeblock of data bits and interleaves those encoded bits using an M-Sequence bit interleaver in step412.

One of skill in the art may appreciate that minor modifications of the embodiment methods are possible. For instance for small enough F (or large enough L), full frequency diversity can be exploited even without the step of interleaving of modulation symbols within the interlace. This step can optionally be skipped in such embodiments.

In a preferred embodiment the bit-interleaver412used to interleave the bits in each code block may be configured as a reduced-set M-Sequence interleaver. This type of interleaver is based on an M-Sequence generator which can be used to generate bit-indices that denote the next bit to be added to the interleaved sequence. The M-sequence generator may include a Linear Feedback Shift Register (LFSR) of some length M. The register length is chosen so that the LFSR has a sufficiently large state space to cover the largest encoded packet that it will be handling. The size S of the packet to be interleaved is 16K/R where R is the turbo code rate. For example, a code rate of 1/3 results in an encoded packet of 48K bits. A 16-bit LFSR has 216−1=65535 states and would cover an encoded packet of this size.

FIG. 5shows an exemplary 16-bit LFSR to generate the M-Sequence that may be used for M-Sequence interleaver in step412. Before interleaving begins, a register502is loaded with the value of 0x1. The register is then clocked once. The value X of the register bits together is then compared to the interleaver length S. If X is smaller than S, the value of X is copied to the output of the circuit. If X is equal to S, a value of 0 is output. If X is larger than S, this value of X is skipped and the register is clocked again. This process is repeated until a value of X in the target range of [1, . . . , S] is reached.

Each value of the input buffer address IN_ADDR that is generated this way is used as an index into the packet to be interleaved. The output buffer address OUT_ADDR is initialized to a value of 0. The value of the bit addressed by IN_ADDR is copied to address OUT_ADDR in the output buffer of the interleaver. The value of OUT_ADDR is then incremented by 1. The process now repeats to produce the next bit of the output buffer. This way the output buffer is written sequentially. Once the last bit of the output buffer at OUT_ADDR equal to S−1 is written, the process is complete. The algorithm guarantees in this case that each bit of the input packet has been copied to the output buffer exactly once.

The process of using an M-Sequence generator to interleave an encoded turbo packet automatically works for all code rates R, regardless of the size S of the output packet. Any state values of the internal LFSR that exceed the target interleaver size S are skipped or “punctured” and this ensures that the interleaving finishes correctly. Note that for turbo code rates that result in relatively small output packets, this can mean that a large number of values of X needs to be skipped before the next value in the target range [1, . . . , S] is reached.

While this generally is not a problem, there are alternative embodiments possible which might be desirable if the apparatus would otherwise run out of clock cycles to complete the operation. In this alternative embodiment, different versions of the algorithm are incorporated with different length LFSRs. The appropriate version of the algorithm can then be picked depending on the code rate of the turbo code that is used. For instance, for a code rate 1/3 a 16-bit LFSR is needed. For code rate 2/3, the output of the turbo encoder is 24K bits long and in that case a 15-bit LFSR would suffice to cover the required number of states.

FIG. 6illustrates an alternative embodiment encoding/interleaving method that may be utilized with FLO communication systems, such as FLO-EV. Although this embodiment encoding/interleaving method may add complexity to the implementing structure, it affords slightly improved performance compared to the design of the embodiment illustrated inFIG. 4, and thus may be preferable in some implementations. In particular, the MLC encoder ofFIG. 6includes N code blocks as inFIG. 4, each consisting of a single 16 Kbits long information packet. Similar to the embodiment shown inFIG. 4, a turbo encoder is used in step411to turbo encode the packet to form an output packet of length 16K/R where R is the turbo coderate used for the MLC.

However, in contrast to the embodiment shown inFIG. 4, in the embodiment shown inFIG. 6there is no intra-codeblock bit-interleaver, such as the M-Sequence bit interleaver in step412ofFIG. 4. In addition, in the embodiment shown inFIG. 6, the output packet is no longer partitioned into subpackets in step413ofFIG. 4. Instead the bits associated with the turbo encoded packets of all N codeblocks are concatenated together to form a single superpacket of size (16K*N)/R. This superpacket is then bit-interleaved all at once using a reduced-set M-Sequence interleaver in step615. The design of this M-sequence interleaver615is similar to the M-Sequence bit interleaver utilized in step412and described above with respect toFIG. 4, except that the LFSR covers the increased size of the superpacket. In an embodiment, this LFSR could use a 27-bit shift register, based on filling an entire MediaFLO superframe with a single MLC using a transmission mode of 16QAM, turbo rate 2/3.

Once the turbo encoded superpacket is bit-interleaved, the resulting encoded and interleaved bits may be processed using the same or similar steps320-326described above with reference toFIGS. 3 and 4. As shown inFIG. 6, in contrast to the processes shown inFIGS. 3 and 4, once the slots are mapped to interlaces using a slot-to-interlace map in step323, the modulation symbols may not be interleaved within the interlace using a reduced-set bit-reversal interleaver in step324and mapped to the subcarriers in the interlace. Since the turbo encoded bits are interleaved after a superpacket is formed, that interleaving process essentially interleaves the bits within the interlace in step615and, therefore, such an additional interleaving operation is not required.

The embodiment ofFIG. 6affords slightly improved performance in fading channels over the embodiment described above with reference toFIG. 4, as well as obviating the need for interleaving of modulation symbols within each interlace because full frequency diversity is always exploited. On the other hand, the embodiment shown inFIG. 6increases implementational complexity. Because the number of bits in the superpacket likely exceeds what can be stored on a processor chip, an external memory will be required to store the packet prior to and after interleaving. The interleaving operation itself will then involve single-bit read and write operations on this memory resulting in inefficient use of the memory bus. Additionally the difference between the shortest and longest interleaver required in this design is very large, meaning that either a very large number of interleaver states will have to be punctured or, alternatively, that a significant number of different versions of the interleaver circuit will have to be present in order to avoid excessive puncturing.

In the receiver devices the inverse of the processes described above are performed in order to recover the original data packets.FIG. 7illustrates an embodiment method that may be implemented in a receiver device for decoding/de-interleaving data packets received from a base station implementing the embodiment encoding/interleaving method described above with reference toFIG. 4. The embodiment method for decoding/de-interleaving data packets may be performed by a dedicated receiver circuit or the processor within a receiver device. The OFDM signal may be received via an antenna in a FLO receiver circuit which accomplishes frequency correction and channel estimation in step501. The received OFDM signal may be demodulated into the respective symbols in step502. Once demodulated, the symbols may be separated into their respective interlaces in step503. The interlaces may be de-interleaved using a reduced set soft bit reversal process in step504. The de-interleaved interlaces may be mapped to their appropriate slots using an interlace to slot map in step505. The modulation symbols may be mapped into their appropriate soft bit strings in step506. The soft bit strings may be descrambled into each respective slot in step507. In the receiver, “soft bits” or “soft information” are processed. The soft information corresponding to a particular bit represents the likelihood that the bit is a 0 or a 1 (for instance all negative values mean the bit is more likely to be a 1 while all positive values of the soft information mean the bit is more likely to be a 0). The magnitude of the soft information represents the confidence in the particular value.

The resulting bitstream may then be de-interleaved using a round robin de-interleaver in step508, in which the de-interleaver operates in an inverse manner to that described above with reference toFIG. 4in order to recover the separate codeblock subpackets. The round robin de-interleaver recovers separate codeblock subpacket streams by allocating the first subpacket to the last codeblock, etc., until a sub-packet allocated to the first codeblock is reached. At that point the de-interleaving operation continues with the second packet of the last codeblock and so on, until all 16 packets of all N codeblocks have been de-interleaved. In each codeblock the subpackets are recovered in step509.

The recovered subpackets are subjected to an M-sequence bit de-interleaving process to obtain a bit stream, step510. In the M-sequence bit de-interleave process, as each turbo encoded bit of the codeblock is received by the M-sequence bit de-interleaver the encoded soft bit is stored to the generated pseudo random noise sequence address location in a manner that recovers the original turbo encoded data packets (i.e., the data packets that were subjected to the M-sequence bit interleaving in step412as described above with reference toFIG. 4). This process is illustrated inFIG. 9. This process is similar to how data streams encrypted using M-sequence bit interleaving encryption are decrypted. As soft bits are recovered they are allocated to the appropriate codeblock in order to recover the original turbo encoded codeblocks. Once an entire codeblock is recovered, the codeblocks are subjected to a turbo decoding process in step511to recover the original codeblock (i.e., the codeblock prior to turbo encoding in step411as described above with reference toFIG. 4). The process of de-interleaving through the M-sequence bit interleaver process and turbo decoding may be performed in parallel in a plurality N of decoder modules1-N within the deinterleaver/decryptor module500to yield a plurality N of original codeblocks. The recovered plurality of decoded and de-interleaved codeblocks may be combined to recreate the MLC data flow which is provided to a processor to enable reception of a content flow.

A process of recovering bits or frames of data lost due to interference or fading may be performed after symbols have been recovered but before the data is recovered. In this manner, the error detection and correction processing will act on pseudo randomly interleaved data which helps to ensure the error correction process behaves consistently during fading events (i.e., avoids biased performance).

FIG. 8illustrates an embodiment method that may be implemented in a receiver device for decoding/de-interleaving data packets received from a base station implementing the embodiment encoding/interleaving method described above with reference toFIG. 6. The alternative embodiment method illustrated inFIG. 8implements operations that are substantially similar to those in the embodiment method illustrated inFIG. 7. However, the data packets are encoded and interleaved in the embodiment method shown inFIG. 6using a reduced set M-sequence interleaver in step615. As a result, on the receiver device side the received data only has to be subjected to a single reduced-set M-sequence bit reversal de-interleaving process in step520. Thus, the reduced set bit reversal process of step504and the M-sequence bit de-interleaving process in step510are not necessary. Instead, the reduced set M de-interleaving process in step520recovers a plurality N of turbo encoded codeblocks which are each subjected to an turbo decoding process in step509to recover the original plurality N of data packets. Thus, in this embodiment the decoder module500includes a plurality N of turbo decoders509. The recovered plurality of data packets are then combined to recover the data flow of the MLC.

As discussed above with respect toFIG. 6, the decoding/de-interleaving process illustrated inFIG. 8affords slightly improved performance in fading channels over the design described with reference toFIG. 7, as well as obviating the need for de-interleaving interlaces into respective modulation symbols. However, the implementation of the embodiment method ofFIG. 8may suffer a number of disadvantages as described above with reference toFIG. 6. For example, the implementation of the decoding/de-interleaving process ofFIG. 8may increase the complexity of the hardware within the receiver device. Because the number of bits in the superpacket likely exceeds what can be stored on chip, an external memory will be required to store the packet prior to and after de-interleaving. The de-interleaving operation itself will then involve single-bit read and write operations on this memory which may result in inefficient use of the memory bus.

As discussed above, the various embodiments may also be useful and applicable to any broadcast technology utilizing long turbo coding on superframes comprised of multiple subframes, an example of which would be ATSC M/H protocol transmission if long turbo coding were implemented. Therefore, references to MediaFLO® technology and the use of MediaFLO® terminology is intended to serve as an example embodiment, and not to limit the scope of the claims unless specifically recited.

The various embodiment methods for decoding and de-interleaving received FLO/DVB-H signals may be performed by the multimedia receiver606and portions of the processor601and memory602. Alternatively dedicated modules within or coupled to the multimedia receiver606may perform the embodiment methods. In other alternative embodiments, the methods may be performed by the processor601after the FLO/DVB-H signal is received and demodulated by the multimedia receiver606.

FIG. 10is a system block diagram of a receiver device suitable for receiving data encoded and interleaved in accordance with any of the embodiments. A typical receiver device600may include a processor601coupled to internal memory602, a display603, and to a speaker608. Additionally, the receiver device600will include an antenna604for sending and receiving electromagnetic radiation that may be connected to a wireless data link and/or cellular telephone transceiver605coupled to the processor601and a mobile multimedia broadcast receiver606coupled to the processor601. Receiver devices600typically also include menu selection buttons or rocker switches607for receiving user inputs.

The various embodiments on the broadcast side described above may be implemented on any of a variety of commercially available server devices, such as the server700illustrated inFIG. 11. Such a server700typically includes a processor701coupled to volatile memory702and a large capacity nonvolatile memory, such as a disk drive703. The server700may also include a floppy disc drive, compact disc (CD) or DVD disc drive706coupled to the processor701. The server700may also include network access ports704coupled to the processor701for establishing data connections with a network705, such as a local area network coupled to a FLO scheduler server214or a broadcast modulator220.

The processors601,701may be any programmable microprocessor, microcomputer or multiple processor chip or chips that can be configured by software instructions (applications) to perform a variety of functions, including the functions of the various embodiments described below. In some mobile receiver devices, multiple processors701may be provided, such as one processor dedicated to wireless communication functions and one processor dedicated to running other applications. Typically, software applications may be stored in the internal memory602,702,703before they are accessed and loaded into the processor601,701. The processor601,701may include internal memory sufficient to store the application software instructions.

The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in a non-transitory processor-readable storage medium, such as a RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary non-transitory processor-readable storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the non-transitory processor-readable storage medium may reside as discrete components in a user terminal. By way of example, and not limitation, non-transitory processor-readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of non-transitory processor-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a tangible, non-transitory processor-readable medium and/or computer-readable medium, which may be incorporated into a computer program product.