WO2009076315A1 - Outer coding framework for application packet error rate minimization - Google Patents

Outer coding framework for application packet error rate minimization Download PDF

Info

Publication number
WO2009076315A1
WO2009076315A1 PCT/US2008/085974 US2008085974W WO2009076315A1 WO 2009076315 A1 WO2009076315 A1 WO 2009076315A1 US 2008085974 W US2008085974 W US 2008085974W WO 2009076315 A1 WO2009076315 A1 WO 2009076315A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
rows
code
link
block
Prior art date
Application number
PCT/US2008/085974
Other languages
French (fr)
Inventor
Yoav Nebat
Sina Zehedi
Original Assignee
Nextwave Broadband, Inc.
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 Nextwave Broadband, Inc. filed Critical Nextwave Broadband, Inc.
Publication of WO2009076315A1 publication Critical patent/WO2009076315A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0084Formats for payload data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/30Resource management for broadcast services

Definitions

  • FIELD [0001] The subject matter described herein relates to wireless communications and, more particularly, error-correction coding.
  • Channel coding such as forward error-correction coding or error-correction coding, introduces redundancy into a signal prior to transmission or storage of the signal.
  • the redundancy enables a receiving system to detect and, perhaps, correct errors introduced into the signal by, for example, the channel, receiver, transmitter, storage medium, and the like.
  • a source provides data to an encoder (also referred to as a coder).
  • the encoder inserts redundant (also sometimes referred to as parity) bits, thereby outputting a longer sequence of code bits, called a codeword.
  • the codewords can then be transmitted to a receiver, which uses a suitable decoder to extract the original, unencoded data and correct errors caused by, for example, the channel and/or the receiver.
  • Channel coding can thus be used to detect and/or correct errors — reducing the need for the source transmitter to retransmit data received in error. By reducing the need to retransmit data that is in error, the throughput of the channel or link is improved. Moreover, the correction of errors also improves the quality of the data received at the receiver. In the case of a digital video broadcast, error-correction coding enhances not only the quality of the digital video broadcast over the wireless channel but also improves the throughput of the wireless channel.
  • error-correction coding enhances not only the quality of the digital video broadcast over the wireless channel but also improves the throughput of the wireless channel.
  • a method may include inserting a received packet into one or more rows of a frame.
  • the one or more rows including the received packets may be encoded using an outer code.
  • a block of data from a column of the frame may be read.
  • the frame may include the one or more rows encoded using the outer code.
  • the block that is read may be provided to enable an inner code to encode the block before transmission.
  • the method may include decoding, using an inner code, one or more link-layer packets.
  • One of the decoded link-layer packets may be inserted into one or more columns of a frame.
  • the outer code may be used to decode one or more rows of the frame, when the columns of the frame have been filled.
  • the one or more rows of the frame may be read, when the one or more rows are decoded using the outer code, the one or more rows of the frame forming an application data packet.
  • a system may include means for inserting a received packet into one or more rows of a frame.
  • the system also includes means for encoding, using an outer code, the one or more rows including the received packet and means for reading a block of data from a column of the frame.
  • the frame may include the one or more rows encoded using the outer code.
  • the system includes means for providing the block to enable an inner code to encode the block before transmission through a wireless network.
  • the system may include a framer configured to insert a received packet into one or more rows of a frame and an outer coder configured to encode, using an outer code, the one or more rows including the received packet.
  • the framer is also configured to read a block of data from a column of the frame.
  • the frame may include the one or more rows encoded using the outer code, and may provide the block to enable an inner code to encode the block before transmission through a wireless network.
  • the system may include a deframer configured to insert one or more link-layers packet into one or more columns of a frame and an outer decoder configured to decode, using an outer code, one or more rows of the frame, when the columns of the frame have been filled.
  • the framer is configured to read the one or more rows of the frame, when the one or more rows are decoded using the outer code.
  • the one or more rows of the frame form an application data packet.
  • a computer-readable medium containing instructions to configure at least one processor to perform a method.
  • the method may include inserting a received packet into one or more rows of a frame.
  • the method also includes encoding, using an outer code, the one or more rows including the received packet.
  • the method also includes reading a block of data from a column of the frame.
  • the frame may include the one or more rows encoded using the outer code.
  • the method also includes providing the block to enable an inner code to encode the block before transmission.
  • a computer-readable medium containing instructions to configure at least one processor to perform a method.
  • the method may include decoding, using an inner code, one or more link-layer packets.
  • the method also includes inserting one of the decoded link-layer packets into one or more columns of a frame and decoding; using an outer code, one or more rows of the frame, when the columns of the frame have been filled; and reading the one or more rows of the frame, when the one or more rows are decoded using the outer code.
  • the one or more rows of the frame form an application data packet.
  • a portion of the received packet may be inserted into a first row of the frame and, when the first row is filled, inserting a remaining portion of the received packet into a second row of the frame.
  • the first row may be encoded using the outer code to form a first codeword and the second row may be encoded using the outer code to form a second codeword.
  • the outer code may be implemented as a forward error-correction code to encode each of the rows, such that each encoded row forms a codeword.
  • the outer code may be implemented as a Reed-Solomon (RS) forward error-correction code to encode each of the rows, such that each encoded codeword forms an RS codeword.
  • RS Reed-Solomon
  • a portion of the column may be read, when at least one of the rows of the frame has been encoded using the outer code.
  • one or more blocks may be read, when at least one of the rows of the frame has been encoded using the outer code.
  • the block may be packed into a link-layer packet, which may be further encoded using the inner code before being sent.
  • the inner code may be implemented as at least one of a Convolution Code (CC) and a Convolutional Turbo Code (CTC).
  • CC Convolution Code
  • CTC Convolutional Turbo Code
  • Each of the one or more rows may be arranged as a horizontal portion of the frame, and the column may be arranged as a vertical portion of the frame.
  • Each of the one or more rows may be arranged as a vertical portion of the frame, and the column may be arranged as a horizontal portion of the frame.
  • FIG. 1 depicts a block diagram of a network including client stations and base stations;
  • FIG. 2 depicts a block diagram of a base station using outer coding on application data packets
  • FIG. 3 depicts a process for using outer coding on application data packets received at a base station
  • FIGs. 4A, 4B, 5, and 6 depict examples of frames at various stages during the process of outer coding at the base station
  • FIG. 7 depicts a block diagram of a client station using outer coding on application data packets
  • FIG. 8 depicts a process for using outer coding on application data packets received at a client station
  • FIGs. 9-11 depict examples of frames at various stages during the process of outer coding at the client station.
  • FIG. 12 depicts a block diagram of a controller implementing outer coding.
  • Like labels are used to refer to same or similar items in the drawings.
  • FIG. 1 is a simplified functional block diagram of an embodiment of a wireless communication system 100.
  • the wireless communication system 100 includes a plurality of base stations 11 OA and 110B, each supporting a corresponding service or coverage area 112A and 112B.
  • the base stations are capable of communicating with wireless devices within their coverage areas.
  • the first base station 110A is capable of wirelessly communicating with a first client station 114A and a second client station 114B within the coverage area 112A.
  • the first client station 114A is also within the coverage area 112B and is capable of communicating with the second base station 110B.
  • the communication path from the base station to the client station is referred to as a downlink 116A and the communication path from the client station to the base station is referred to as an uplink 116B.
  • a typical wireless communication system 100 includes a much larger number of base stations.
  • the base stations 11 OA and 110B can be configured as cellular base station transceiver subsystems, gateways, access points, radio frequency (RF) repeaters, frame repeaters, nodes, or any wireless network entry point.
  • RF radio frequency
  • the base stations 110A and 110B can be configured to support an omni-directional coverage area or a sectored coverage area.
  • the second base station 110B is depicted as supporting the sectored coverage area 112B.
  • the coverage area 112B is depicted as having three sectors, 118A, 118B, and 118C.
  • the second base station 110B treats each sector 118 as effectively a distinct coverage area.
  • client stations 114A and 114B are shown in the wireless communication system 100, typical systems are configured to support a large number of client stations.
  • the client stations 114A and 114B can be mobile, nomadic, or stationary units.
  • the client stations 114A and 114B are often referred to as, for example, mobile stations, mobile units, subscriber stations, wireless terminals, or the like.
  • a client station can be, for example, a wireless handheld device, a vehicle mounted device, a portable device, client premise equipment, a fixed location device, a wireless plug-in accessory or the like.
  • a client station can take the form of a handheld computer, notebook computer, wireless telephone, personal digital assistant, wireless email device, personal media player, meter reading equipment or the like and may include a display mechanism, microphone, speaker and memory.
  • the base stations 110A and 110B also communicate with each other and a network control module 124 over backhaul links 122A and 122B.
  • the backhaul links 122A and 122B may include wired and wireless communication links.
  • the network control module 124 provides network administration and coordination as well as other overhead, coupling, and supervisory functions for the wireless communication system 100.
  • the wireless communication system 100 can be configured to support both bidirectional communication and unidirectional communication.
  • the client station is capable of both receiving information from and providing information to the wireless communications network.
  • Applications operating over the bidirectional communications channel include traditional voice and data applications.
  • a unidirectional network the client station is capable of receiving information from the wireless communications network but may have limited or no ability to provide information to the network.
  • Applications operating over the unidirectional communications channel include broadcast and multicast applications.
  • the wireless system 100 supports both bidirectional and unidirectional communications.
  • the network control module 124 is also coupled to external entities via, for example, content link 126 (e.g., a source of digital video and/or multimedia) and two-way traffic link 128.
  • the wireless communication system 100 can be configured to use Orthogonal Frequency Division Multiple Access (OFDMA) communication techniques.
  • OFDMA Orthogonal Frequency Division Multiple Access
  • the wireless communication system 100 can be configured to substantially comply with a standard system specification, such as IEEE 802.16 and its progeny or some other wireless standard such as, for example, WiBro, WiFi, Long Term Evolution (LTE), or it may be a proprietary system.
  • a standard system specification such as IEEE 802.16 and its progeny or some other wireless standard such as, for example, WiBro, WiFi, Long Term Evolution (LTE), or it may be a proprietary system.
  • WiBro Wireless Fidelity
  • WiFi Wireless Fidelity
  • LTE Long Term Evolution
  • the subject matter described herein is not limited to application to OFDMA systems or to the noted standards and specifications.
  • the description in the context of an OFDMA system is offered for the purposes of providing a particular example only.
  • IEEE 802.16 refers to one or more Institute of Electrical and Electronic Engineers (IEEE) Standard for Local and metropolitan area networks, Part 16: Air Interface for Fixed Broadband Wireless Access Systems, 1 October 2004, IEEE Standard for Local and metropolitan area networks, Part 16: Air Interface for Fixed and Mobile Broadband Wireless Access Systems, 26 February 2006, and any subsequent additions or revisions to the IEEE 802.16 series of standards.
  • downlink 116A and uplink 116B each represent a radio frequency (RF) signal.
  • the RF signal may include data, such as voice, video, images, Internet Protocol (IP) packets, control information, and any other type of information.
  • IP Internet Protocol
  • the RF signal may use OFDMA.
  • OFDMA is a multi-user version of orthogonal frequency division multiplexing (OFDM).
  • OFDMA multiple access is achieved by assigning to individual users groups of subcarriers (also referred to as subchannels or tones).
  • the subcarriers are modulated using BPSK (binary phase shift keying), QPSK (quadrature phase shift keying), QAM (quadrature amplitude modulation), and carry symbols (also referred to as OFDMA symbols) including data coded using a forward error-correction code.
  • FIG. 2 depicts an implementation of base station 110B.
  • Base station 110B includes a framer 210 for arranging data into a frame 240, an outer coder 220 for providing an outer coding on the data in the frame 240, and an inner coder 225 for further encoding data that has been encoded by the outer coder 220.
  • the frame 240 further includes an application data table 212 and a parity table 214.
  • the "data" values in frame 240 may be data, such as application data packets (e.g., data packets 292 and 294), or may be references to memory locations where the data can be accessed in memory.
  • the components of base station 110B may be distributed in one or more locations.
  • the framer 210 and outer coder 220 are implemented at a control module, such as network control module 124, a base station controller, or the like, while inner coder 225 is implemented at each of base stations 11 OA and 110B.
  • frame 240 may be sent to each of base stations 11 OA and 110B, and each of the base stations may encode blocks read from the columns of frame 240 before those encoded blocks are sent to a client station or other device, such as a storage device.
  • inner coder 225 is disabled or not included, such that the outer coder 220 is the primary or sole error-correction mechanism.
  • FIG. 2 also illustrates frame 240 including column 280 and rows 282 and 283, described further below with respect to FIG. 3.
  • FIG. 3 depicts a process 300 for using an outer code to encode data received at a base station, such as base station 110B.
  • a base station such as base station 110B.
  • the description of FIG. 3 below will also refer to base station 110B depicted at FIGs. 1 and 2.
  • base station 110B may insert row-wise (i.e., along the rows of a frame, table, or data structure) one or more application data packets 205 into an application data table 212 of frame 240 (e.g., a table, data structure, and the like).
  • the application data packets 205 may be received from content link 126, two-way traffic link 128, a base station, or any other component of network 100.
  • the application data packets 205 may include broadcast data, such as a digital video broadcast, although any other data may be included in application data packets.
  • frame 240 may be stored in a storage medium such as, for example volatile or non-volatile storage mediums.
  • exemplary volatile storage mediums include random access memory (RAM), such as dynamic RAM (DRAM), static RAM (RAM), and the like.
  • RAM random access memory
  • DRAM dynamic RAM
  • RAM static RAM
  • exemplary non-volatile storage mediums may include magnetic RAM (MRAM), battery backed RAM, and the like.
  • MRAM magnetic RAM
  • the memory provided by the storage medium is typically addressed by rows and columns, such that a memory location can be identified by its row and column.
  • framer 210 may write to and read from frame 240 using the row and column addresses of frame 240 and those read-write operations may result in an access to a corresponding location in memory (e.g., the location in memory being addressed as a row and column in memory using a virtual address or a physical address in memory).
  • a corresponding location in memory e.g., the location in memory being addressed as a row and column in memory using a virtual address or a physical address in memory.
  • FIGs. 4A, 4B, 5, 6, 10, 11 , and 12 the rows are depicted as horizontal portions of the frame and the columns are depicted as vertical portions of the frame, in some embodiments, the rows are arranged as a vertical portion of the frame and, as such, the columns would be arranged as a horizontal portion of the frame.
  • framer 210 may insert each received packet row-wise by inserting the received packets sequentially into the rows of the frame 240 (e.g., filling the first row, then the second row, and so forth). In the example of FIG. 2, framer 210 inserts a first packet 292 into the first row and, when that first row is filled, a portion of the second row. Framer 210 also inserts a second packet 294 into the second row and a portion of the third row.
  • Additional application data packets may also be inserted into the remaining rows of application data table 212 until the rows of application data table 212 have been filled and/or until there are no application data packets 205 to send to a client station, such as client station 114A.
  • the insertion of application data packets 205 may also include fill data, which is also referred to as pad packets.
  • fill refers to putting as many packets as can be held or conveniently contained, but not necessarily filling, the frame to capacity (e.g., a frame can be considered filled when only Vz of the frame is occupied with packets).
  • outer coder 220 encodes each row of application data table 212 using an outer code.
  • outer coder 220 encodes each row of frame 240 as that row is filled, while in other cases, outer coder 240 encodes each row of frame 240 when application data table 240 is filled.
  • outer coder 220 is implemented as a forward error-correction coder, such as a Reed-Solomon forward error-correction coder or a low-density parity check (LDPC) coder, although other error-correction or forward error-correction coders may be used as well.
  • LDPC low-density parity check
  • outer coder 220 inserts into parity table 214 any parity symbols generated by the outer code. For example, when a Reed-Solomon (RS) (255,243) coder is used, as described further below, each row of frame 240 would include parity symbols having a length of 12, which would be inserted into parity table 214 by outer coder 220.
  • RS Reed-Solomon
  • a Reed-Solomon forward error-correction coder is the outer coder 220.
  • the frame 240 is referred to as an RS table and each row of frame 240 is an RS codeword.
  • the outer coder 220 may use an RS (255,243) code as the outer code.
  • the RS (255,243) code corresponds to a code that takes as an input 243 bytes and outputs a resulting codeword of 255 bytes.
  • a Reed-Solomon code is a systematic code
  • the first 243 positions of the row (which fall in the application data table 212) will be left unchanged and the next 12 columns of the row (which fall in parity table 214) will include the computed parity bytes.
  • the RS (255,243) would thus result in application data table 212 having 243 bytes per row and parity table 214 having 12 parity bytes.
  • the outer coder 220 would encode 243 bytes in the first row of application data table 212 and generate the 12 bytes of parity, such that the RS codeword for the first row is 255 bytes, i.e., 243 + 12.
  • outer coder 220 would continue to use the RS (255,243) to encode any remaining rows in frame 240.
  • Reed-Solomon is described herein as the outer code, other codes (as well as codes of other sizes) may be used as well including codes that are not systematic, i.e., resulting in a codeword that does not necessarily include a portion that is identical to the original input.
  • the Reed-Solomon code may be an RS (255, Y) code, where Y is an odd number between 191 and 253.
  • frame 240 may be implemented to have any number of rows and columns.
  • framer 210 reads blocks of data (or simply "blocks"), wherein the reading is done column-wise, i.e., reading one or more values from the columns of frame 240.
  • framer 240 may read, column-wise, a first block from the first column by reading a first value at row one 282 of the first column 280, then reading another value at the second row 283 of the first column 280, and so forth sequentially down first column 280.
  • framer 240 may read an entire column, such as column 280, to form a block, while in other cases, the framer 240 may read a portion of one or more columns to form the block.
  • the frame 240 thus provides an interleaving of the packets inserted at 310.
  • framer 340 inserts the blocks read at 335 into packets, such as link-layer packets, although other types of packets and structures of data may be used as well.
  • packets such as link-layer packets
  • framer 240 may read a portion of first column 280 to form a link-layer packet having 1600 bytes, although other packet sizes may be used as well.
  • link-layer packets refers to a type of packet that may be exchanged between a base station and a client station.
  • the link layer packet may be a protocol data unit (PDU) that includes a header in the front and a cyclic redundancy check (CRC) appended to the end of the data, such as a hybrid automatic retransmission request (HARQ) PDU in conformance with the IEEE 802.16 standard, or the link layer packet may be a PDU that does not include a header and an appended CRC, but is instead simply the read data block.
  • PDU protocol data unit
  • CRC cyclic redundancy check
  • HARQ hybrid automatic retransmission request
  • an inner code is also used to further encode the block or link-layer packet read from frame 240 (yes at 342), while in other cases the inner code is not used (no at 342).
  • inner coder 225 uses an inner code to encode each of the link-layer packets.
  • the inner coder 225 may encode the link-layer packets using one or more error- correction or forward error-correction coding schemes, such as a Convolution Code (CC), a Convolutional Turbo Code (CTC), and the like.
  • CC Convolution Code
  • CTC Convolutional Turbo Code
  • the base station 110B sends the link-layer packets to a client station, such as client station 114A.
  • a client station such as client station 114A.
  • base station 110B sends those packets through the wireless network to client station 114A, relying on the outer code to provide forward error- correction.
  • base station 110B sends through the wireless network to client station 114Athe link-layer packets encoded with an outer code concatenated with an inner code.
  • Base station 110B may include other components, such as a radio frequency (RF) front-end comprising an antenna to transmit an RF signal, such as a downlink to client station 114A.
  • RF radio frequency
  • the RF front-end may also include other components, such as filters, converters (e.g., digital-to-analog converters and the like), an Inverse Fast Fourier Transform (IFFT) module, and symbol mappers. These and other components may be used to modulate data, such as the link-layer packets, onto the RF signal transmitted by base station 110B.
  • the base station 110B is compatible with IEEE 802.16 and transmits an RF signal configured as an OFDMA signal, including subcarriers carrying the link-layer packets.
  • process 300 is described in connection with a base station sending packets to a client station, process 300 may be used in other applications. For example, process 300 may be used to provide an outer code on data sent to a storage device, such as a hard drive or optical storage device.
  • FIGs. 4A, 4B, 5, and 6 depict frame 240 at various stages of process 300.
  • application data packets 407A-E are inserted row-wise into application data table 212.
  • the first application data packet 407A fills three rows.
  • the framer 210 inserts application data packet 407A row-wise across the rows as depicted at pattern 460A, which shows the pattern for how each bit of the packet is written into the rows, although other rowwise writing patterns may be used as well.
  • Framer 210 inserts a second, subsequent application data packet 407B into the remaining portion of the third row and filling the remainder of the third row as well as rows four through six and a portion of row seven.
  • Framer 210 continues to insert application data packets 407C- E row-wise across application data table 212.
  • FIG. 4A depicts a row-by-row insertion of packets 407A-E
  • FIG. 4B depicts a pattern 460C.
  • the framer 210 inserts the first four bytes of first packet 407A into the first column, the next four bytes of first packet 407A into the second column, and so forth.
  • This so-called "block" pattern 460C can be used with other, subsequent application data packets to fill frame 240.
  • application data packet 407B may be inserted into frame 240 using the pattern 460C, as depicted at FIG. 4B.
  • pattern 460C depicts a block of 12 columns and 4 rows, other block sizes may be used as well.
  • Additional application data packets such as application data packets 407B-E, are also inserted into the blocks of frame 240 (and, in particular, application data table 212).
  • FIG. 5 depicts the frame 240 after the outer coder 220 uses the outer code to encode the first ten rows of frame 240, as described above with respect to FIG. 3 at 320.
  • the first ten rows are depicted as outer codewords 51 OA-J.
  • the first row is encoded using an outer code, such as an RS code, to form an outer coder word 510A, which includes parity symbols corresponding to the columns of parity table 214.
  • the second row is also encoded using an outer code, such as an RS code, to form an outer coder word 510B, which includes parity symbols corresponding to the columns of parity table 214.
  • FIG. 6 depicts frame 240 after outer coder 220 has encoded the rows of frame 240 to form outer codewords 51 OA-M, which includes the parity symbols inserted into parity table 214.
  • FIG. 6 also depicts how blocks may be read column-wise from frame 240. For example, framer 210 reads block 605Afrom a portion of the first column. Next, framer 210 reads block 605B from the remaining portion of the first column and a portion of the second column, and then reads block 605C from the remaining portion of the second column and a portion of the third column and so forth until all the columns of frame 240 are read. The blocks that are read may then be packaged into link-layer packets and provided to, for example, inner coder 225, so that the block can be encoded using an inner code.
  • FIG. 7 depicts a client station 114A.
  • Client station 114A includes an inner decoder 720 for decoding received packets using an inner code, a deframer 710 for arranging data into a frame 740, and an outer decoder 725 for decoding using an outer code.
  • the frame 740 includes an application data table 712 and a parity table 714.
  • FIG. 8 depicts a process 800 for decoding packets, such as link- layer packets 295 received from a wireless network and base station 110B.
  • client station 114A receives one or more link-layer packets 295 from a wireless network and base station 110B.
  • Client station 114A may include a radio frequency (RF) front-end comprising an antenna to receive an RF signal, such as a downlink from base station 110B.
  • the RF front-end may also include other components, such as filters, analog-to-digital converters, a Fast Fourier Transform (FFT) module, and a symbol demapper. These and other components may be used to demodulate the RF signal into data and, in particular, the link-layer packets transmitted by base station 110B and carried by the RF signal.
  • the client station 114A is compatible with IEEE 802.16 and receives an RF signal configured as an OFDMA signal, including subcarriers carrying the link- layer packets.
  • the inner decoder 720 decodes, using an inner code, the one or more link-layer packets 295.
  • the inner-code may be implemented as any error-correction or forward error-correction code, such as a Convolutional Turbo Code (CTC), a Convolutional Code (CC), or any other code.
  • CTC Convolutional Turbo Code
  • CC Convolutional Code
  • inner decoder 720 may be implemented as CTC decoder, the output of which may be provided to deframer 710 for insertion into frame 740 as described below at 815.
  • the inner code is either disabled or not used, such that decoding by the inner decoder 720 is not necessary.
  • client station 114A and, in particular, deframer 710 inserts into frame 740 one or more link-layer packets 295 (or blocks of decode packets), decoded by inner decoder 720.
  • link-layer packets 295 or blocks of decode packets
  • inner decoder 720 When the data block that is read in 335 (FIG. 3) is augmented with a header (e.g., a generic MAC (media access control) header consistent with IEEE 802.16) before transmission, that header may be removed from the link-layer packets before those packets are inserted column-wise into frame 740.
  • the inner code is not used; nonetheless, link-layer packets 295 are inserted into the frame 240 column-wise.
  • FIG. 9 depicts an example of frame 740.
  • the link-layer packets 295 are inserted column-wise.
  • deframer 710 inserts the first link-layer packet (LLP) 295A into the first column, then inserts the second link-layer packet (LLP) 295B after the first link-layer packet, and so forth until the frame has been filled with link-layer packets 295A-R or there are no more link-layer packets ready to be decoded using the outer code.
  • LLP link-layer packet
  • LLP second link-layer packet
  • the outer decoder 725 decodes each of the rows of the frame using the outer code previously selected at base station 110B. For example, when outer decoder 220 at base station 110B uses an RS (255,243) forward error-correction code, outer decoder 725 at client station 114A uses the same RS (255,243) forward error-correction code selected at base station 110B to decode each row of frame 740. In some implementations using an inner code, outer decoder 725 decodes the rows even when the inner coder 720 indicates an error.
  • the outer coding scheme described herein distributes application data packets across a greater number of blocks and codewords, so that an error burst is distributed across several packets — making those errors more likely to be detected and/or corrected by the outer decoder 725.
  • the enhanced error-correction may be used to reduce the amount of parity symbols used in frame 240 rather than use the coding gain to correct errors — thus saving bandwidth and providing additional throughput.
  • erasure correction is not used at client station 114A during the outer decoding process 800, additional savings in terms of throughput may be attained.
  • deframer 710 reads, row-wise, each row of frame 740 by reading row- by-row the application data table 712. For example, deframer 710 reads the first row of application data table 712 and continues reading row-by-row to form application data packet(s). When a block pattern is used (as depicted at FIG. 4B), the deframer 710 instead reads one or more blocks of the application data table 712.
  • FIG. 10 depicts an example of a row 1010, which will be decoded by outer decoder 725. Although FIG. 10 depicts a single row 1010 selected for decoding, outer decoder 725 typically decodes each of the rows of frame 240.
  • FIG. 11 depicts frame 740 after each row has been decoded by outer decoder 725.
  • the deframer 710 reads frame 740 row-wise.
  • deframer 710 reads row-wise the values of the first row, the second row, and a portion of the third row of frame 740.
  • FIG. 11 depicts a row-wise read pattern 1100, other row-wise read patterns may be used as well.
  • frame 740 may include packet delimiter information to indicate the start and stop of each of the application data packets 407A-E.
  • deframer 710 would read frame 740 consistent with how the application data packets were written into the frame 240 at the base station. For example, when application data packets are written into frame 240 in a block-by-block manner, as described above with respect to FIG. 4B, deframer 710 reads frame 740 in a block-by-block manner, as well. [0060] At 850, deframer 710 provides the read packet, such as application data packets 407A-E, to another component, such as a higher-layer application at client station 114A. For example, application data packets 407A-E may be associated with an application, such as a digital video broadcast application at client station 114A. When that is the case, the use of outer coding as described above with respect to processes 300 and 800, enables the digital video broadcast to be provided to client station 114A with fewer errors and/or enhanced throughput.
  • the use of an outer code as described above with respect to processes 300 and 800 may improve the throughput of a channel as well as the quality of the data by correcting and/or detecting errors in the data. Specifically, the way the packets, such as the application data packets, are written row-wise into frame 240, encoded row-wise, and then read from frame 240 column-wise improves error correction and/or detection.
  • the outer coding process, described above with respect to processes 300 and 800 has, in some implementations, one or more features that provide that enhanced performance.
  • FIG. 6 depicts block 605A, which includes ten outer coder words 51 OA-J. This provides better averaging and better time diversity, which minimizes the codeword error rate by distributing the transmission of any single outer codeword over time as each block is transmitted — thus minimizing the affects of an error burst on any given codeword.
  • the packet such as the application data packet, inserted into the frame rowwise corresponds to a small number of codewords. Therefore, for a given codeword error rate, the error rate of the corresponding packets is minimized.
  • application data packet 407A inserted row-wise into the first three rows of frame 240 is encoded by three outer codewords 51 OA-C as depicted at FIGs. 4 and 5.
  • errors in the codewords affect fewer packets, when compared to an approach that writes packets column-wise and then reads those packets column-wise to encode them.
  • another feature is that an outer codeword coincides with a small number of packets. Therefore, each codeword error corresponds to a small number of packet errors, when compared to an approach that writes packets column-wise and then reads those packets column-wise to encode them.
  • the outer coding approach described above with respect to processes 300 and 800 may result in the application packet error rate being significantly reduced while using the same amount of overhead, such as the parity symbols of parity table 214, when compared to an approach that inserts the application data packets column-wise and then reads the packets, after encoding, column-wise. Furthermore, the outer coding approach described above with respect to processes 300 and 800 may be used to reduce the amount of parity used in frame 240 to save bandwidth rather than correct additional errors. In addition, the outer coding approach described above with respect to processes 300 and 800 may avoid bursty packet error patterns while minimizing the packet error rate by distributing the transmission of any single outer codeword over time as each block is transmitted.
  • FIG. 12 depicts an implementation of framer 210, outer coder 220, and inner coder 225 in a macrodiversity controller 1200.
  • the output of the inner coder 225 may be link-layer packets that are used as protocol data units (PDUs), such as HARQ PDUs in conformance with IEEE 802.16.
  • PDUs protocol data units
  • the PDUs are inserted into a macrodiversity region, such as a multicast and broadcast region (MBS) consistent with IEEE 802.16.
  • MBS multicast and broadcast region
  • the phrase "macrodiversity region” refers to any type of data region of a data frame usable for broadcast data.
  • the macrodiversity controller 1200 distributes the MBS region 1210 to zero or more base stations 110A and 110B.
  • the macrodiversity controller 1200 also schedules the transmissions of MBS regions 1210 at base stations 11 OA and 110B, such that the base stations synchronously transmit the MBS regions over the same frequency using the same waveform (e.g., same modulation and coding scheme), and using the same framing parameters (e.g., number of symbols in the OFDMA frame, length of symbol, cyclic prefix, and the like).
  • the base stations 11 OA and 110B each insert the MBS region 1210 into an OFDMA frame 1250.
  • the base stations then transmit the OFDMA frame 1250 to client stations, such as client station 114A.
  • the MBS region 1210 is transmitted using macrodiversity, while other portions of the OFDMA frame 1250 may not use macrodiversity.
  • macrodiversity provides a so-called "macrodiversity gain" by combining the synchronous broadcast by base stations 11 OA and 110B.
  • base station 11 OA and base station 110B would each transmit frame 1250 including the frame control header (FCH), downlink map (DL-MAP), and unicast downlink (DL) without using macrodiversity.
  • FCH frame control header
  • DL-MAP downlink map
  • DL unicast downlink
  • the same MBS region is broadcast using macrodiversity from base stations 11 OA-B, the other data regions, such as the unicast downlink, may be unique to each base station.
  • Base stations 11 OA and base station 110B each transmit MBS region 1210, at the same frequency and at the same time using the same waveform, framing parameters, and a common waveform — providing at the client station 114A macrodiversity gain with respect to the transmitted MBS region 1210.
  • FIG. 12 refers to two base stations 110A and 11 B, there may be additional base stations operating using macrodiversity to transmit MBS regions.
  • the outer coder 220 would use the same RS code in a particular zone, such as a geographic area, to allow macrodiversity.
  • the same system 1222 includes another macrodiversity controller with a different outer code in its outer coder, in which case the system 1222 may provide another zone of macrodiversity using the other outer code.
  • the macrodiversity controller 1200 may receive packets 205 corresponding to streams of multimedia content, such as digital broadcast television and the like, each stream associated with one or more zones.
  • FIG. 12 depicts the macrodiversity controller 1200 as separate from base stations 110A, 110B 1 and network controller 124, macrodiversity controller 1200 may be incorporated into at least one of a base station, a network controller, and the like.
  • the subject matter described herein may be embodied in systems, apparatus, methods, and/or articles depending on the desired configuration.
  • various implementations of the subject matter described such as the components of base station 110B described with respect to FIG. 2, the components of client station 114A as described with respect to FIG. 7, as well as the macrodiversity controller 1200, may be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof.
  • ASICs application specific integrated circuits
  • implementations may include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
  • a programmable processor which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
  • the components of base station 110B, client station 114A, macrodiversity controller 1200 and aspects of processes 300 and 800 may be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software (including computer programs), and/or combinations thereof.
  • ASICs application specific integrated circuits
  • the memory may include one or more programs that cause the processor to perform one or more of the operations described herein.

Abstract

The subject matter disclosed herein provides an outer coding framework for minimizing the error rate of packets, such as application data packets used to transmit digital video broadcast data as well as other forms of data. In one aspect, there is provided a method. The method may include inserting a received packet into one or more rows of a frame. The one or more rows including the received packets may be encoded using an outer code. A block of data from a column of the frame may be read. The frame may include the one or more rows encoded using the outer code. The block that is read may be provided to enable an inner code to encode the block before transmission through a wireless network. Related systems, apparatus, methods, and/or articles are also described.

Description

OUTER CODING FRAMEWORK FOR APPLICATION PACKET ERROR RATE MINIMIZATION
FIELD [0001] The subject matter described herein relates to wireless communications and, more particularly, error-correction coding.
BACKGROUND [0002] Channel coding, such as forward error-correction coding or error-correction coding, introduces redundancy into a signal prior to transmission or storage of the signal. The redundancy enables a receiving system to detect and, perhaps, correct errors introduced into the signal by, for example, the channel, receiver, transmitter, storage medium, and the like. For example, in a communication system that employs forward error-correction coding, a source provides data to an encoder (also referred to as a coder). The encoder inserts redundant (also sometimes referred to as parity) bits, thereby outputting a longer sequence of code bits, called a codeword. The codewords can then be transmitted to a receiver, which uses a suitable decoder to extract the original, unencoded data and correct errors caused by, for example, the channel and/or the receiver.
[0003] Channel coding can thus be used to detect and/or correct errors — reducing the need for the source transmitter to retransmit data received in error. By reducing the need to retransmit data that is in error, the throughput of the channel or link is improved. Moreover, the correction of errors also improves the quality of the data received at the receiver. In the case of a digital video broadcast, error-correction coding enhances not only the quality of the digital video broadcast over the wireless channel but also improves the throughput of the wireless channel. SUMMARY [0004] The subject matter disclosed herein provides methods and apparatus for an outer coding framework for minimizing the error rate of data, such as packets used to transmit a digital video broadcast as well as other forms of data.
[0005] In one aspect, there is provided a method. The method may include inserting a received packet into one or more rows of a frame. The one or more rows including the received packets may be encoded using an outer code. A block of data from a column of the frame may be read. The frame may include the one or more rows encoded using the outer code. The block that is read may be provided to enable an inner code to encode the block before transmission.
[0006] In another aspect, there is provided a method. The method may include decoding, using an inner code, one or more link-layer packets. One of the decoded link-layer packets may be inserted into one or more columns of a frame. The outer code may be used to decode one or more rows of the frame, when the columns of the frame have been filled. The one or more rows of the frame may be read, when the one or more rows are decoded using the outer code, the one or more rows of the frame forming an application data packet.
[0007] In another aspect there is provided a system. The system may include means for inserting a received packet into one or more rows of a frame. The system also includes means for encoding, using an outer code, the one or more rows including the received packet and means for reading a block of data from a column of the frame. The frame may include the one or more rows encoded using the outer code. Moreover, the system includes means for providing the block to enable an inner code to encode the block before transmission through a wireless network. [0008] In another aspect there is provided a system. The system may include a framer configured to insert a received packet into one or more rows of a frame and an outer coder configured to encode, using an outer code, the one or more rows including the received packet. The framer is also configured to read a block of data from a column of the frame. The frame may include the one or more rows encoded using the outer code, and may provide the block to enable an inner code to encode the block before transmission through a wireless network.
[0009] In another aspect, there is provided a system. The system may include a deframer configured to insert one or more link-layers packet into one or more columns of a frame and an outer decoder configured to decode, using an outer code, one or more rows of the frame, when the columns of the frame have been filled. The framer is configured to read the one or more rows of the frame, when the one or more rows are decoded using the outer code. The one or more rows of the frame form an application data packet.
[0010] In another aspect there is provided a computer-readable medium containing instructions to configure at least one processor to perform a method. The method may include inserting a received packet into one or more rows of a frame. The method also includes encoding, using an outer code, the one or more rows including the received packet. The method also includes reading a block of data from a column of the frame. The frame may include the one or more rows encoded using the outer code. The method also includes providing the block to enable an inner code to encode the block before transmission.
[0011] In another aspect there is a computer-readable medium containing instructions to configure at least one processor to perform a method. The method may include decoding, using an inner code, one or more link-layer packets. The method also includes inserting one of the decoded link-layer packets into one or more columns of a frame and decoding; using an outer code, one or more rows of the frame, when the columns of the frame have been filled; and reading the one or more rows of the frame, when the one or more rows are decoded using the outer code. The one or more rows of the frame form an application data packet.
[0012] Variations of the above aspects may include one or more of the following features. A portion of the received packet may be inserted into a first row of the frame and, when the first row is filled, inserting a remaining portion of the received packet into a second row of the frame. The first row may be encoded using the outer code to form a first codeword and the second row may be encoded using the outer code to form a second codeword. The outer code may be implemented as a forward error-correction code to encode each of the rows, such that each encoded row forms a codeword. The outer code may be implemented as a Reed-Solomon (RS) forward error-correction code to encode each of the rows, such that each encoded codeword forms an RS codeword. When a block is read from the frame, a portion of the column may be read, when at least one of the rows of the frame has been encoded using the outer code. When a block is read from the frame, one or more blocks may be read, when at least one of the rows of the frame has been encoded using the outer code. The block may be packed into a link-layer packet, which may be further encoded using the inner code before being sent. The inner code may be implemented as at least one of a Convolution Code (CC) and a Convolutional Turbo Code (CTC). The link-layer packet is encoded with the inner code before being sent through a channel to a client station configured to receive the encoded link-layer packet. Each of the one or more rows may be arranged as a horizontal portion of the frame, and the column may be arranged as a vertical portion of the frame. Each of the one or more rows may be arranged as a vertical portion of the frame, and the column may be arranged as a horizontal portion of the frame.
[0013] The details of one or more variations of the subject matter described herein are set forth in the accompanying drawings and the description below. Features and advantages of the subject matter described herein will be apparent from the description and drawings, and from the claims.
DESCRIPTION OF DRAWINGS [0014] In the drawings,
[0015] FIG. 1 depicts a block diagram of a network including client stations and base stations;
[0016] FIG. 2 depicts a block diagram of a base station using outer coding on application data packets;
[0017] FIG. 3 depicts a process for using outer coding on application data packets received at a base station;
[0018] FIGs. 4A, 4B, 5, and 6 depict examples of frames at various stages during the process of outer coding at the base station;
[0019] FIG. 7 depicts a block diagram of a client station using outer coding on application data packets;
[0020] FIG. 8 depicts a process for using outer coding on application data packets received at a client station;
[0021] FIGs. 9-11 depict examples of frames at various stages during the process of outer coding at the client station; and
[0022] FIG. 12 depicts a block diagram of a controller implementing outer coding. [0023] Like labels are used to refer to same or similar items in the drawings.
DETAILED DESCRIPTION [0024] FIG. 1 is a simplified functional block diagram of an embodiment of a wireless communication system 100. The wireless communication system 100 includes a plurality of base stations 11 OA and 110B, each supporting a corresponding service or coverage area 112A and 112B. The base stations are capable of communicating with wireless devices within their coverage areas. For example, the first base station 110A is capable of wirelessly communicating with a first client station 114A and a second client station 114B within the coverage area 112A. The first client station 114A is also within the coverage area 112B and is capable of communicating with the second base station 110B. In this description, the communication path from the base station to the client station is referred to as a downlink 116A and the communication path from the client station to the base station is referred to as an uplink 116B.
[0025] Although for simplicity only two base stations are shown in FIG. 1 , a typical wireless communication system 100 includes a much larger number of base stations. The base stations 11 OA and 110B can be configured as cellular base station transceiver subsystems, gateways, access points, radio frequency (RF) repeaters, frame repeaters, nodes, or any wireless network entry point.
[0026] The base stations 110A and 110B can be configured to support an omni-directional coverage area or a sectored coverage area. For example, the second base station 110B is depicted as supporting the sectored coverage area 112B. The coverage area 112B is depicted as having three sectors, 118A, 118B, and 118C. In typical embodiments, the second base station 110B treats each sector 118 as effectively a distinct coverage area.
[0027] Although only two client stations 114A and 114B are shown in the wireless communication system 100, typical systems are configured to support a large number of client stations. The client stations 114A and 114B can be mobile, nomadic, or stationary units. The client stations 114A and 114B are often referred to as, for example, mobile stations, mobile units, subscriber stations, wireless terminals, or the like. A client station can be, for example, a wireless handheld device, a vehicle mounted device, a portable device, client premise equipment, a fixed location device, a wireless plug-in accessory or the like. In some cases, a client station can take the form of a handheld computer, notebook computer, wireless telephone, personal digital assistant, wireless email device, personal media player, meter reading equipment or the like and may include a display mechanism, microphone, speaker and memory.
[0028] In a typical system, the base stations 110A and 110B also communicate with each other and a network control module 124 over backhaul links 122A and 122B. The backhaul links 122A and 122B may include wired and wireless communication links. The network control module 124 provides network administration and coordination as well as other overhead, coupling, and supervisory functions for the wireless communication system 100.
[0029] In some embodiments, the wireless communication system 100 can be configured to support both bidirectional communication and unidirectional communication. In a bidirectional network, the client station is capable of both receiving information from and providing information to the wireless communications network. Applications operating over the bidirectional communications channel include traditional voice and data applications. In a unidirectional network, the client station is capable of receiving information from the wireless communications network but may have limited or no ability to provide information to the network. Applications operating over the unidirectional communications channel include broadcast and multicast applications. In one embodiment, the wireless system 100 supports both bidirectional and unidirectional communications. In such an embodiment, the network control module 124 is also coupled to external entities via, for example, content link 126 (e.g., a source of digital video and/or multimedia) and two-way traffic link 128.
[0030] The wireless communication system 100 can be configured to use Orthogonal Frequency Division Multiple Access (OFDMA) communication techniques. For example, the wireless communication system 100 can be configured to substantially comply with a standard system specification, such as IEEE 802.16 and its progeny or some other wireless standard such as, for example, WiBro, WiFi, Long Term Evolution (LTE), or it may be a proprietary system. The subject matter described herein is not limited to application to OFDMA systems or to the noted standards and specifications. The description in the context of an OFDMA system is offered for the purposes of providing a particular example only.
[0031] As used herein, IEEE 802.16 refers to one or more Institute of Electrical and Electronic Engineers (IEEE) Standard for Local and metropolitan area networks, Part 16: Air Interface for Fixed Broadband Wireless Access Systems, 1 October 2004, IEEE Standard for Local and metropolitan area networks, Part 16: Air Interface for Fixed and Mobile Broadband Wireless Access Systems, 26 February 2006, and any subsequent additions or revisions to the IEEE 802.16 series of standards. [0032] In some embodiments, downlink 116A and uplink 116B each represent a radio frequency (RF) signal. The RF signal may include data, such as voice, video, images, Internet Protocol (IP) packets, control information, and any other type of information. When IEEE-802.16 is used, the RF signal may use OFDMA. OFDMA is a multi-user version of orthogonal frequency division multiplexing (OFDM). In OFDMA, multiple access is achieved by assigning to individual users groups of subcarriers (also referred to as subchannels or tones). The subcarriers are modulated using BPSK (binary phase shift keying), QPSK (quadrature phase shift keying), QAM (quadrature amplitude modulation), and carry symbols (also referred to as OFDMA symbols) including data coded using a forward error-correction code.
[0033] FIG. 2 depicts an implementation of base station 110B. Base station 110B includes a framer 210 for arranging data into a frame 240, an outer coder 220 for providing an outer coding on the data in the frame 240, and an inner coder 225 for further encoding data that has been encoded by the outer coder 220. The frame 240 further includes an application data table 212 and a parity table 214. The "data" values in frame 240 may be data, such as application data packets (e.g., data packets 292 and 294), or may be references to memory locations where the data can be accessed in memory. In some embodiments, the components of base station 110B may be distributed in one or more locations. For example, the framer 210 and outer coder 220 are implemented at a control module, such as network control module 124, a base station controller, or the like, while inner coder 225 is implemented at each of base stations 11 OA and 110B. In this example, frame 240 may be sent to each of base stations 11 OA and 110B, and each of the base stations may encode blocks read from the columns of frame 240 before those encoded blocks are sent to a client station or other device, such as a storage device. Moreover, in some implementations, inner coder 225 is disabled or not included, such that the outer coder 220 is the primary or sole error-correction mechanism. It should be noted that FIG. 2 also illustrates frame 240 including column 280 and rows 282 and 283, described further below with respect to FIG. 3.
[0034] FIG. 3 depicts a process 300 for using an outer code to encode data received at a base station, such as base station 110B. The description of FIG. 3 below will also refer to base station 110B depicted at FIGs. 1 and 2.
[0035] At 310, base station 110B may insert row-wise (i.e., along the rows of a frame, table, or data structure) one or more application data packets 205 into an application data table 212 of frame 240 (e.g., a table, data structure, and the like). The application data packets 205 may be received from content link 126, two-way traffic link 128, a base station, or any other component of network 100. The application data packets 205 may include broadcast data, such as a digital video broadcast, although any other data may be included in application data packets.
[0036] Furthermore, frame 240 may be stored in a storage medium such as, for example volatile or non-volatile storage mediums. Exemplary volatile storage mediums include random access memory (RAM), such as dynamic RAM (DRAM), static RAM (RAM), and the like. Exemplary non-volatile storage mediums may include magnetic RAM (MRAM), battery backed RAM, and the like. Moreover, the memory provided by the storage medium is typically addressed by rows and columns, such that a memory location can be identified by its row and column. For example, framer 210 may write to and read from frame 240 using the row and column addresses of frame 240 and those read-write operations may result in an access to a corresponding location in memory (e.g., the location in memory being addressed as a row and column in memory using a virtual address or a physical address in memory). Moreover, although in FIGs. 4A, 4B, 5, 6, 10, 11 , and 12 the rows are depicted as horizontal portions of the frame and the columns are depicted as vertical portions of the frame, in some embodiments, the rows are arranged as a vertical portion of the frame and, as such, the columns would be arranged as a horizontal portion of the frame.
[0037] To insert the received application data packets 205 into application data table 212, framer 210 may insert each received packet row-wise by inserting the received packets sequentially into the rows of the frame 240 (e.g., filling the first row, then the second row, and so forth). In the example of FIG. 2, framer 210 inserts a first packet 292 into the first row and, when that first row is filled, a portion of the second row. Framer 210 also inserts a second packet 294 into the second row and a portion of the third row. Additional application data packets may also be inserted into the remaining rows of application data table 212 until the rows of application data table 212 have been filled and/or until there are no application data packets 205 to send to a client station, such as client station 114A. In some implementations, the insertion of application data packets 205 may also include fill data, which is also referred to as pad packets. Moreover, in the context of the frame 240, the term "fill" refers to putting as many packets as can be held or conveniently contained, but not necessarily filling, the frame to capacity (e.g., a frame can be considered filled when only Vz of the frame is occupied with packets).
[0038] At 320, outer coder 220 encodes each row of application data table 212 using an outer code. In some implementations, outer coder 220 encodes each row of frame 240 as that row is filled, while in other cases, outer coder 240 encodes each row of frame 240 when application data table 240 is filled. In some implementations, outer coder 220 is implemented as a forward error-correction coder, such as a Reed-Solomon forward error-correction coder or a low-density parity check (LDPC) coder, although other error-correction or forward error-correction coders may be used as well.
[0039] At 325, as each row is encoded using an outer code, outer coder 220 inserts into parity table 214 any parity symbols generated by the outer code. For example, when a Reed-Solomon (RS) (255,243) coder is used, as described further below, each row of frame 240 would include parity symbols having a length of 12, which would be inserted into parity table 214 by outer coder 220.
[0040] In some implementations, a Reed-Solomon forward error-correction coder is the outer coder 220. When that is the case, the frame 240 is referred to as an RS table and each row of frame 240 is an RS codeword. For example, the outer coder 220 may use an RS (255,243) code as the outer code. The RS (255,243) code corresponds to a code that takes as an input 243 bytes and outputs a resulting codeword of 255 bytes. Because a Reed-Solomon code is a systematic code, the first 243 positions of the row (which fall in the application data table 212) will be left unchanged and the next 12 columns of the row (which fall in parity table 214) will include the computed parity bytes. The RS (255,243) would thus result in application data table 212 having 243 bytes per row and parity table 214 having 12 parity bytes. For example, when outer coder 220 uses an RS (255,243) code, the outer coder 220 would encode 243 bytes in the first row of application data table 212 and generate the 12 bytes of parity, such that the RS codeword for the first row is 255 bytes, i.e., 243 + 12. In this example, outer coder 220 would continue to use the RS (255,243) to encode any remaining rows in frame 240. Although Reed-Solomon is described herein as the outer code, other codes (as well as codes of other sizes) may be used as well including codes that are not systematic, i.e., resulting in a codeword that does not necessarily include a portion that is identical to the original input. Moreover, in some implementations, the Reed-Solomon code may be an RS (255, Y) code, where Y is an odd number between 191 and 253. Although the above example relates to a specific number of rows and columns, frame 240 may be implemented to have any number of rows and columns.
[0041] At 335, framer 210 reads blocks of data (or simply "blocks"), wherein the reading is done column-wise, i.e., reading one or more values from the columns of frame 240. For example, framer 240 may read, column-wise, a first block from the first column by reading a first value at row one 282 of the first column 280, then reading another value at the second row 283 of the first column 280, and so forth sequentially down first column 280. In some cases, framer 240 may read an entire column, such as column 280, to form a block, while in other cases, the framer 240 may read a portion of one or more columns to form the block. The frame 240 thus provides an interleaving of the packets inserted at 310.
[0042] At 340, framer 340 inserts the blocks read at 335 into packets, such as link-layer packets, although other types of packets and structures of data may be used as well. For example, framer 240 may read a portion of first column 280 to form a link-layer packet having 1600 bytes, although other packet sizes may be used as well. The phrase "link-layer packets" refers to a type of packet that may be exchanged between a base station and a client station. For example, in some embodiments, the link layer packet may be a protocol data unit (PDU) that includes a header in the front and a cyclic redundancy check (CRC) appended to the end of the data, such as a hybrid automatic retransmission request (HARQ) PDU in conformance with the IEEE 802.16 standard, or the link layer packet may be a PDU that does not include a header and an appended CRC, but is instead simply the read data block.
[0043] In some implementations, an inner code is also used to further encode the block or link-layer packet read from frame 240 (yes at 342), while in other cases the inner code is not used (no at 342). When the inner code is used at 345, inner coder 225 uses an inner code to encode each of the link-layer packets. The inner coder 225 may encode the link-layer packets using one or more error- correction or forward error-correction coding schemes, such as a Convolution Code (CC), a Convolutional Turbo Code (CTC), and the like.
[0044] At 350, the base station 110B sends the link-layer packets to a client station, such as client station 114A. When the inner code is not applied to the link-layer packets, base station 110B sends those packets through the wireless network to client station 114A, relying on the outer code to provide forward error- correction. When the inner code is applied, base station 110B sends through the wireless network to client station 114Athe link-layer packets encoded with an outer code concatenated with an inner code. Base station 110B may include other components, such as a radio frequency (RF) front-end comprising an antenna to transmit an RF signal, such as a downlink to client station 114A. The RF front-end may also include other components, such as filters, converters (e.g., digital-to-analog converters and the like), an Inverse Fast Fourier Transform (IFFT) module, and symbol mappers. These and other components may be used to modulate data, such as the link-layer packets, onto the RF signal transmitted by base station 110B. In some implementations, the base station 110B is compatible with IEEE 802.16 and transmits an RF signal configured as an OFDMA signal, including subcarriers carrying the link-layer packets. [0045] Although process 300 is described in connection with a base station sending packets to a client station, process 300 may be used in other applications. For example, process 300 may be used to provide an outer code on data sent to a storage device, such as a hard drive or optical storage device.
[0046] FIGs. 4A, 4B, 5, and 6 depict frame 240 at various stages of process 300. Referring to FIG. 4A, application data packets 407A-E are inserted row-wise into application data table 212. In the example of FIG. 4A, the first application data packet 407A fills three rows. The framer 210 inserts application data packet 407A row-wise across the rows as depicted at pattern 460A, which shows the pattern for how each bit of the packet is written into the rows, although other rowwise writing patterns may be used as well. Framer 210 inserts a second, subsequent application data packet 407B into the remaining portion of the third row and filling the remainder of the third row as well as rows four through six and a portion of row seven. Framer 210 continues to insert application data packets 407C- E row-wise across application data table 212.
[0047] Although FIG. 4A depicts a row-by-row insertion of packets 407A-E, other patterns of packet insertion may be used as well. For example, FIG. 4B depicts a pattern 460C. Referring to FIG. 4B, the framer 210 inserts the first four bytes of first packet 407A into the first column, the next four bytes of first packet 407A into the second column, and so forth. This so-called "block" pattern 460C can be used with other, subsequent application data packets to fill frame 240. For example, application data packet 407B may be inserted into frame 240 using the pattern 460C, as depicted at FIG. 4B. Although pattern 460C depicts a block of 12 columns and 4 rows, other block sizes may be used as well. Additional application data packets, such as application data packets 407B-E, are also inserted into the blocks of frame 240 (and, in particular, application data table 212).
[0048] FIG. 5 depicts the frame 240 after the outer coder 220 uses the outer code to encode the first ten rows of frame 240, as described above with respect to FIG. 3 at 320. The first ten rows are depicted as outer codewords 51 OA-J. The first row is encoded using an outer code, such as an RS code, to form an outer coder word 510A, which includes parity symbols corresponding to the columns of parity table 214. The second row is also encoded using an outer code, such as an RS code, to form an outer coder word 510B, which includes parity symbols corresponding to the columns of parity table 214.
[0049] FIG. 6 depicts frame 240 after outer coder 220 has encoded the rows of frame 240 to form outer codewords 51 OA-M, which includes the parity symbols inserted into parity table 214. FIG. 6 also depicts how blocks may be read column-wise from frame 240. For example, framer 210 reads block 605Afrom a portion of the first column. Next, framer 210 reads block 605B from the remaining portion of the first column and a portion of the second column, and then reads block 605C from the remaining portion of the second column and a portion of the third column and so forth until all the columns of frame 240 are read. The blocks that are read may then be packaged into link-layer packets and provided to, for example, inner coder 225, so that the block can be encoded using an inner code.
[0050] FIG. 7 depicts a client station 114A. Client station 114A includes an inner decoder 720 for decoding received packets using an inner code, a deframer 710 for arranging data into a frame 740, and an outer decoder 725 for decoding using an outer code. The frame 740 includes an application data table 712 and a parity table 714. [0051] FIG. 8 depicts a process 800 for decoding packets, such as link- layer packets 295 received from a wireless network and base station 110B.
[0052] At 805, client station 114A receives one or more link-layer packets 295 from a wireless network and base station 110B. Client station 114A may include a radio frequency (RF) front-end comprising an antenna to receive an RF signal, such as a downlink from base station 110B. The RF front-end may also include other components, such as filters, analog-to-digital converters, a Fast Fourier Transform (FFT) module, and a symbol demapper. These and other components may be used to demodulate the RF signal into data and, in particular, the link-layer packets transmitted by base station 110B and carried by the RF signal. In some implementations, the client station 114A is compatible with IEEE 802.16 and receives an RF signal configured as an OFDMA signal, including subcarriers carrying the link- layer packets.
[0053] At 810, the inner decoder 720 decodes, using an inner code, the one or more link-layer packets 295. The inner-code may be implemented as any error-correction or forward error-correction code, such as a Convolutional Turbo Code (CTC), a Convolutional Code (CC), or any other code. For example, inner decoder 720 may be implemented as CTC decoder, the output of which may be provided to deframer 710 for insertion into frame 740 as described below at 815. Moreover, as noted above, in some implementations, the inner code is either disabled or not used, such that decoding by the inner decoder 720 is not necessary.
[0054] At 815, client station 114A and, in particular, deframer 710 inserts into frame 740 one or more link-layer packets 295 (or blocks of decode packets), decoded by inner decoder 720. When the data block that is read in 335 (FIG. 3) is augmented with a header (e.g., a generic MAC (media access control) header consistent with IEEE 802.16) before transmission, that header may be removed from the link-layer packets before those packets are inserted column-wise into frame 740. In some implementations, the inner code is not used; nonetheless, link-layer packets 295 are inserted into the frame 240 column-wise.
[0055] FIG. 9 depicts an example of frame 740. As link-layer packets 295 are received by deframer 710, the link-layer packets 295 are inserted column-wise. For example, deframer 710 inserts the first link-layer packet (LLP) 295A into the first column, then inserts the second link-layer packet (LLP) 295B after the first link-layer packet, and so forth until the frame has been filled with link-layer packets 295A-R or there are no more link-layer packets ready to be decoded using the outer code.
[0056] At 835, when the frame is filled (yes at 830), the outer decoder 725 decodes each of the rows of the frame using the outer code previously selected at base station 110B. For example, when outer decoder 220 at base station 110B uses an RS (255,243) forward error-correction code, outer decoder 725 at client station 114A uses the same RS (255,243) forward error-correction code selected at base station 110B to decode each row of frame 740. In some implementations using an inner code, outer decoder 725 decodes the rows even when the inner coder 720 indicates an error. This is possible because the outer coding scheme described herein distributes application data packets across a greater number of blocks and codewords, so that an error burst is distributed across several packets — making those errors more likely to be detected and/or corrected by the outer decoder 725. Moreover, the enhanced error-correction may be used to reduce the amount of parity symbols used in frame 240 rather than use the coding gain to correct errors — thus saving bandwidth and providing additional throughput. Moreover, if erasure correction is not used at client station 114A during the outer decoding process 800, additional savings in terms of throughput may be attained.
[0057] At 840, when the outer decoder 725 has decoded some of the rows of frame 740, deframer 710 reads, row-wise, each row of frame 740 by reading row- by-row the application data table 712. For example, deframer 710 reads the first row of application data table 712 and continues reading row-by-row to form application data packet(s). When a block pattern is used (as depicted at FIG. 4B), the deframer 710 instead reads one or more blocks of the application data table 712.
[0058] FIG. 10 depicts an example of a row 1010, which will be decoded by outer decoder 725. Although FIG. 10 depicts a single row 1010 selected for decoding, outer decoder 725 typically decodes each of the rows of frame 240.
[0059] FIG. 11 depicts frame 740 after each row has been decoded by outer decoder 725. The deframer 710 reads frame 740 row-wise. For example, to form the application data packet 407A, deframer 710 reads row-wise the values of the first row, the second row, and a portion of the third row of frame 740. Moreover, although FIG. 11 depicts a row-wise read pattern 1100, other row-wise read patterns may be used as well. Furthermore, frame 740 may include packet delimiter information to indicate the start and stop of each of the application data packets 407A-E. Although FIG. 11 depicts a row-by-row reading of frame 740, deframer 710 would read frame 740 consistent with how the application data packets were written into the frame 240 at the base station. For example, when application data packets are written into frame 240 in a block-by-block manner, as described above with respect to FIG. 4B, deframer 710 reads frame 740 in a block-by-block manner, as well. [0060] At 850, deframer 710 provides the read packet, such as application data packets 407A-E, to another component, such as a higher-layer application at client station 114A. For example, application data packets 407A-E may be associated with an application, such as a digital video broadcast application at client station 114A. When that is the case, the use of outer coding as described above with respect to processes 300 and 800, enables the digital video broadcast to be provided to client station 114A with fewer errors and/or enhanced throughput.
[0061] The use of an outer code as described above with respect to processes 300 and 800 may improve the throughput of a channel as well as the quality of the data by correcting and/or detecting errors in the data. Specifically, the way the packets, such as the application data packets, are written row-wise into frame 240, encoded row-wise, and then read from frame 240 column-wise improves error correction and/or detection. The outer coding process, described above with respect to processes 300 and 800, has, in some implementations, one or more features that provide that enhanced performance.
[0062] One such feature is that the number of blocks (or FEC blocks) contributing to each outer codeword is maximized. For example, FIG. 6 depicts block 605A, which includes ten outer coder words 51 OA-J. This provides better averaging and better time diversity, which minimizes the codeword error rate by distributing the transmission of any single outer codeword over time as each block is transmitted — thus minimizing the affects of an error burst on any given codeword. Another feature is that the packet, such as the application data packet, inserted into the frame rowwise corresponds to a small number of codewords. Therefore, for a given codeword error rate, the error rate of the corresponding packets is minimized. For example, application data packet 407A inserted row-wise into the first three rows of frame 240 is encoded by three outer codewords 51 OA-C as depicted at FIGs. 4 and 5. As such, errors in the codewords affect fewer packets, when compared to an approach that writes packets column-wise and then reads those packets column-wise to encode them. Moreover, another feature is that an outer codeword coincides with a small number of packets. Therefore, each codeword error corresponds to a small number of packet errors, when compared to an approach that writes packets column-wise and then reads those packets column-wise to encode them.
[0063] Moreover, the outer coding approach described above with respect to processes 300 and 800 may result in the application packet error rate being significantly reduced while using the same amount of overhead, such as the parity symbols of parity table 214, when compared to an approach that inserts the application data packets column-wise and then reads the packets, after encoding, column-wise. Furthermore, the outer coding approach described above with respect to processes 300 and 800 may be used to reduce the amount of parity used in frame 240 to save bandwidth rather than correct additional errors. In addition, the outer coding approach described above with respect to processes 300 and 800 may avoid bursty packet error patterns while minimizing the packet error rate by distributing the transmission of any single outer codeword over time as each block is transmitted.
[0064] Although the description above describes the inner coder 225, framer 210, and outer coder 220 at a base station, the inner coder 225, framer 210, and outer coder 220 may be implemented at other locations, such as at a client station. Furthermore, although the description above describes the inner decoder 720, deframer 710, and outer decoder 725 at a client station, the inner decoder 720, deframer 710, and outer decoder 725 may be implemented at other locations, such as at a base station. [0065] FIG. 12 depicts an implementation of framer 210, outer coder 220, and inner coder 225 in a macrodiversity controller 1200. The output of the inner coder 225 may be link-layer packets that are used as protocol data units (PDUs), such as HARQ PDUs in conformance with IEEE 802.16. The PDUs are inserted into a macrodiversity region, such as a multicast and broadcast region (MBS) consistent with IEEE 802.16. As used herein, the phrase "macrodiversity region" refers to any type of data region of a data frame usable for broadcast data. The macrodiversity controller 1200 distributes the MBS region 1210 to zero or more base stations 110A and 110B. The macrodiversity controller 1200 also schedules the transmissions of MBS regions 1210 at base stations 11 OA and 110B, such that the base stations synchronously transmit the MBS regions over the same frequency using the same waveform (e.g., same modulation and coding scheme), and using the same framing parameters (e.g., number of symbols in the OFDMA frame, length of symbol, cyclic prefix, and the like). In the present embodiment, the base stations 11 OA and 110B each insert the MBS region 1210 into an OFDMA frame 1250. The base stations then transmit the OFDMA frame 1250 to client stations, such as client station 114A. The MBS region 1210 is transmitted using macrodiversity, while other portions of the OFDMA frame 1250 may not use macrodiversity.
[0066] At the client station, such as client station 114A, macrodiversity provides a so-called "macrodiversity gain" by combining the synchronous broadcast by base stations 11 OA and 110B. For example, base station 11 OA and base station 110B would each transmit frame 1250 including the frame control header (FCH), downlink map (DL-MAP), and unicast downlink (DL) without using macrodiversity. Although the same MBS region is broadcast using macrodiversity from base stations 11 OA-B, the other data regions, such as the unicast downlink, may be unique to each base station. Base stations 11 OA and base station 110B each transmit MBS region 1210, at the same frequency and at the same time using the same waveform, framing parameters, and a common waveform — providing at the client station 114A macrodiversity gain with respect to the transmitted MBS region 1210.
[0067] Although the example of FIG. 12 refers to two base stations 110A and 11 B, there may be additional base stations operating using macrodiversity to transmit MBS regions. Moreover, in the example of FIG. 12, the outer coder 220 would use the same RS code in a particular zone, such as a geographic area, to allow macrodiversity. However, in some implementations, the same system 1222 includes another macrodiversity controller with a different outer code in its outer coder, in which case the system 1222 may provide another zone of macrodiversity using the other outer code. In some implementations, the macrodiversity controller 1200 may receive packets 205 corresponding to streams of multimedia content, such as digital broadcast television and the like, each stream associated with one or more zones. Moreover, although FIG. 12 depicts the macrodiversity controller 1200 as separate from base stations 110A, 110B1 and network controller 124, macrodiversity controller 1200 may be incorporated into at least one of a base station, a network controller, and the like.
[0068] The subject matter described herein may be embodied in systems, apparatus, methods, and/or articles depending on the desired configuration. In particular, various implementations of the subject matter described, such as the components of base station 110B described with respect to FIG. 2, the components of client station 114A as described with respect to FIG. 7, as well as the macrodiversity controller 1200, may be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations may include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. For example, the components of base station 110B, client station 114A, macrodiversity controller 1200 and aspects of processes 300 and 800 may be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software (including computer programs), and/or combinations thereof.
[0069] These computer programs (also known as programs, software, software applications, applications, components, or code) include machine instructions for a programmable processor, and may be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the term "machine-readable medium" refers to any computer program product, computer-readable medium, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. Similarly, systems are also described herein that may include a processor and a memory coupled to the processor. The memory may include one or more programs that cause the processor to perform one or more of the operations described herein. [0070] Although a few variations have been described in detail above, other modifications or additions are possible. In particular, further features and/or variations may be provided in addition to those set forth herein. For example, the implementations described above may be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several further features disclosed above. In addition, the logic flow depicted in the accompanying figures and/or described herein does not require the particular order shown, or sequential order, to achieve desirable results. Moreover, although the above describes writing to a frame row-wise and then reading from that frame column-wise, the rows and columns of the frame can be swapped (e.g., by rotating the frame by 90 degrees), in which case the above noted processes and systems continue to be operative. Other embodiments may be within the scope of the following claims.

Claims

WHAT IS CLAIMED IS:
1. A method comprising: inserting a received packet into one or more rows of a frame; encoding, using an outer code, the one or more rows including the received packet; reading a block of data from a column of the frame, the frame including the one or more rows encoded using the outer code; and providing the block to enable an inner code to encode the block before transmission.
2. The method of claim 1 , wherein inserting further comprises: inserting a portion of the received packet into a first row of the frame and, when the first row is filled, inserting a remaining portion of the received packet into a second row of the frame.
3. The method of claim 2 further comprising: encoding the first row using the outer code to form a first codeword; and encoding the second row using the outer code to form a second codeword.
4. The method of claim 1 , wherein encoding, using the outer code, further comprises: using a forward error-correction code to encode each of the rows, each encoded row forming a codeword.
5. The method of claim 1 , wherein encoding, using the outer code, further comprises: using a Reed-Solomon (RS) forward error-correction code to encode each of the rows, each encoded row forming an RS codeword.
6. The method of claim 1 , wherein reading further comprises: reading a portion of the column to form a first block, when at least one row of the frame has been encoded using the outer code.
7. The method of claim 1 , wherein reading further comprises: reading, from columns of the frame, one or more blocks, when at least one row of the frame has been encoded using the outer code.
8. The method of claim 1 , wherein providing further comprises: inserting the block into a link-layer packet, the link-layer packet encoded using the inner code before being sent.
9. The method of claim 1 , further comprising: encoding, using the inner code, a link-layer packet.
10. The method of claim 9 further comprising: encoding, using at least one of a Convolution Code (CC) and a Convolutional Turbo Code (CTC), the link-layer packet before sending the encoded link-layer packet through a channel to a client station configured to receive the encoded link- layer packet.
11. The method of claim 1 , wherein inserting the received packet further comprises: inserting the received packet into the frame on a block basis.
12. The method of claim 1 further comprising: arranging each of the one or more rows as a horizontal portion of the frame; and arranging the column as a vertical portion of the frame.
13. The method of claim 1 further comprising: arranging each of the one or more rows as a vertical portion of the frame; and arranging the column as a horizontal portion of the frame.
14. A method comprising: decoding, using an inner code, one or more link-layer packets; inserting one of the decoded link-layer packets into one or more columns of a frame; decoding, using an outer code, one or more rows of the frame, when the columns of the frame have been filled; and reading the one or more rows of the frame, when the one or more rows are decoded using the outer code, the one or more rows of the frame forming an application data packet.
15. The method of claim 14, wherein decoding, using the inner code, the one or more link-layer packets further comprises: decoding, at a client station, the one or more link-layer packets using at least one of a Convolution Code (CC) and a Convolutional Turbo Code (CTC).
16. The method of claim 14, wherein decoding, using the outer code, the at least one row further comprises: reading the one or more rows to enable a Reed-Solomon (RS) forward error- correction decoder to decode the one or more rows, the one or more decoded rows comprising the application data packet.
17. The method of claim 14, wherein inserting further comprises: inserting one of the received link-layer packets into a first column of the frame, and, when the first column is full, into a second column of the frame.
18. The method of claim 14 further comprising: arranging each of the one or more rows as a horizontal portion of the frame; and arranging each of the one or more columns as a vertical portion of the frame.
19. The method of claim 14 further comprising: arranging each of the one or more columns as a horizontal portion of the table; and arranging each of the one or more rows as a vertical portion of the table.
20. A system comprising: means for inserting a received packet into one or more rows of a frame; means for encoding, using an outer code, the one or more rows including the received packet; means for reading a block of data from a column of the frame, the frame including the one or more rows encoded using the outer code; and means for providing the block to enable an inner code to encode the block before transmission.
21. A system comprising: a framer configured to insert a received packet into one or more rows of a frame; an outer coder configured to encode, using an outer code, the one or more rows including the received packet; and wherein the framer is configured to read a block of data from a column of the frame, the frame including the one or more rows encoded using the outer code and to provide the block to enable an inner code to encode the block before transmission through a wireless network.
22. The system of claim 21 further comprising: an inner encoder coupled to the framer, the inner encoder configured to encode the block using an inner code before the block is transmitted.
23. A system comprising: a deframer configured to insert one or more link-layers packet into one or more columns of a frame; an outer decoder configured to decode, using an outer code, one or more rows of the frame, when the columns of the frame have been filled; and wherein the deframer is configured to read the one or more rows of the frame, when the one or more rows are decoded using the outer code, the one or more rows of the frame forming an application data packet.
24. The system of claim 23 further comprising: an inner decoder coupled to the deframer, the inner decoder using an inner code to decode the one or more link-layer packets, the decoded link-layer packets inserted into the one or more columns of the frame.
25. A computer-readable medium containing instructions to configure at least one processor to perform a method, the method comprising: inserting a received packet into one or more rows of a frame; encoding, using an outer code, the one or more rows including the received packet; reading a block of data from a column of the frame, the frame including the one or more rows encoded using the outer code; and providing the block to enable an inner code to encode the block before transmission.
26. A computer-readable medium containing instructions to configure at least one processor to perform a method, the method comprising: decoding, using an inner code, one or more link-layer packets; inserting one of the decoded link-layer packets into one or more columns of a frame; decoding, using an outer code, one or more rows of the frame, when the columns of the frame have been filled; and reading the one or more rows of the frame, when the one or more rows are decoded using the outer code, the one or more rows of the frame forming an application data packet.
PCT/US2008/085974 2007-12-11 2008-12-08 Outer coding framework for application packet error rate minimization WO2009076315A1 (en)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US736007P 2007-12-11 2007-12-11
US61/007,360 2007-12-11
US1957208P 2008-01-07 2008-01-07
US61/019,572 2008-01-07
US2450708P 2008-01-29 2008-01-29
US61/024,507 2008-01-29
US6011708P 2008-06-09 2008-06-09
US61/060,117 2008-06-09
US12/167,186 US8250441B2 (en) 2007-12-11 2008-07-02 Outer coding framework for application packet error rate minimization
US12/167,186 2008-07-02

Publications (1)

Publication Number Publication Date
WO2009076315A1 true WO2009076315A1 (en) 2009-06-18

Family

ID=40721654

Family Applications (7)

Application Number Title Priority Date Filing Date
PCT/US2008/085984 WO2009076320A1 (en) 2007-12-11 2008-12-08 Compact specification of data allocations
PCT/US2008/085979 WO2009076318A1 (en) 2007-12-11 2008-12-08 Network entry and recovery
PCT/US2008/085982 WO2009076319A2 (en) 2007-12-11 2008-12-08 Data fragmentation identification in a data table
PCT/US2008/085974 WO2009076315A1 (en) 2007-12-11 2008-12-08 Outer coding framework for application packet error rate minimization
PCT/US2008/086103 WO2009076370A2 (en) 2007-12-11 2008-12-09 Outer coding framework
PCT/US2008/086278 WO2009076467A2 (en) 2007-12-11 2008-12-10 Modulation symbol to outer codeword mapping
PCT/US2008/086272 WO2009076462A1 (en) 2007-12-11 2008-12-10 Packet error correlation minimization

Family Applications Before (3)

Application Number Title Priority Date Filing Date
PCT/US2008/085984 WO2009076320A1 (en) 2007-12-11 2008-12-08 Compact specification of data allocations
PCT/US2008/085979 WO2009076318A1 (en) 2007-12-11 2008-12-08 Network entry and recovery
PCT/US2008/085982 WO2009076319A2 (en) 2007-12-11 2008-12-08 Data fragmentation identification in a data table

Family Applications After (3)

Application Number Title Priority Date Filing Date
PCT/US2008/086103 WO2009076370A2 (en) 2007-12-11 2008-12-09 Outer coding framework
PCT/US2008/086278 WO2009076467A2 (en) 2007-12-11 2008-12-10 Modulation symbol to outer codeword mapping
PCT/US2008/086272 WO2009076462A1 (en) 2007-12-11 2008-12-10 Packet error correlation minimization

Country Status (3)

Country Link
US (10) US8250441B2 (en)
CN (1) CN101971672B (en)
WO (7) WO2009076320A1 (en)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6344745B1 (en) * 1998-11-25 2002-02-05 Medrad, Inc. Tapered birdcage resonator for improved homogeneity in MRI
ES2314534T3 (en) * 2005-09-20 2009-03-16 Panasonic Corporation PROCEDURE AND DEVICE FOR THE SIGNALING OF SEGMENTATION AND CONCATENATION OF PACKAGES IN A TELECOMMUNICATIONS SYSTEM.
KR101405969B1 (en) * 2007-06-28 2014-06-13 엘지전자 주식회사 Digital broadcasting system and method of processing data in digital broadcasting system
US8250441B2 (en) 2007-12-11 2012-08-21 Wi-Lan Inc. Outer coding framework for application packet error rate minimization
US20090185633A1 (en) * 2008-01-18 2009-07-23 Futurewei Technologies, Inc. Method and System for Specifying the Location of Data Bursts
KR20090096026A (en) * 2008-03-07 2009-09-10 삼성전자주식회사 Apparatus and method for communicating multicast and broadcast service map message in a broadband wireless communication system
US8934327B2 (en) * 2008-09-03 2015-01-13 Wi-Lan, Inc. MBS with outer coding and adjusted frame reference
WO2010051462A1 (en) * 2008-10-31 2010-05-06 Wi-Lan, Inc. Multicast broadcast service controller
US8347199B2 (en) * 2009-01-21 2013-01-01 Cisco Technology, Inc. Enhanced error detection in multilink serdes channels
KR101489516B1 (en) * 2009-01-22 2015-02-06 엘지전자 주식회사 Method of transmitting backhaul signal in wireless communication system comprising relay station
US8717982B2 (en) * 2009-02-09 2014-05-06 Samsung Electronics Co., Ltd. System and method for efficient enhanced multicast broadcast system (E-MBS) map decoding
US8670397B2 (en) * 2009-02-09 2014-03-11 Samsung Electronics Co., Ltd. System and method for efficient enhanced multicast broadcast system (E-MBS) configuration message decoding
US8442539B2 (en) * 2009-02-27 2013-05-14 Samsung Electronics Co., Ltd. Techniques for supporting low duty cycle mode of base station
CN105898857B (en) * 2009-06-23 2021-05-07 北京三星通信技术研究有限公司 Data synchronization method and system
CN101702640B (en) * 2009-10-15 2013-03-20 北京网御星云信息技术有限公司 Method and device for transmitting data in unidirectional network
US8775908B2 (en) * 2009-12-21 2014-07-08 Sony Corporation Receiver and receiving method for receiving data in a broadcast system using incremental redundancy received through a unicast system
US8743898B2 (en) * 2010-07-01 2014-06-03 Electronics And Telecommunications Research Institute Apparatus and method for transmitting and receiving multicast broadcast service data
US8990351B2 (en) * 2011-04-20 2015-03-24 Mobitv, Inc. Real-time processing capability based quality adaptation
US9900131B2 (en) * 2011-08-15 2018-02-20 Telefonaktiebolaget Lm Ericsson (Publ) Flexible transmission of messages in a wireless communication system with multiple transmit antennas
US9179362B2 (en) * 2011-08-25 2015-11-03 Texas Instruments Incorporated Systems and methods for networking coding using Reed-Solomon codes
US9397704B2 (en) 2012-03-16 2016-07-19 Hughes Networks Systems, Llc Method and apparatus for wireless data transmission subject to periodic signal blockages
US9009559B2 (en) * 2012-03-16 2015-04-14 Hughes Network Systems, Llc Method and apparatus for wireless data transmission subject to periodic signal blockages
US9436842B2 (en) * 2013-08-16 2016-09-06 Vinay Purohit Distributed fragments file system
US9924207B2 (en) 2013-10-28 2018-03-20 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
CN105580342B (en) 2014-04-04 2019-04-05 Lg电子株式会社 The method for sending broadcast singal, the method for receiving broadcast singal, the equipment for sending broadcast singal and the equipment for receiving broadcast singal
KR101733501B1 (en) 2014-08-12 2017-05-10 엘지전자 주식회사 Broadcast signal transmitting method, broadcast signal receiving method, broadcast signal transmitting apparatus, and broadcast signal receiving apparatus
US10129855B1 (en) * 2015-05-07 2018-11-13 Sprint Spectrum L.P. Systems and methods for efficient transmissions of multicast content to wireless devices
KR102534044B1 (en) * 2016-08-12 2023-05-19 삼성전자 주식회사 Apparatus and method for decoding data in mobile communication system
US10911286B2 (en) * 2017-03-31 2021-02-02 Qualcomm Incorporated Techniques and apparatuses for multi-carrier provision of ultra-reliable low latency communications in LTE
US10541769B2 (en) 2017-10-06 2020-01-21 Cisco Technology, Inc. Maintaining synchronization in wireless networks
US10866857B2 (en) * 2017-10-09 2020-12-15 Tsofun Algorithms Ltd. Encoding and decoding of permuted cyclic codes
US10637508B2 (en) * 2017-11-03 2020-04-28 Board Of Trustees Of Michigan State University Optimal construction of regenerating code through rate-matching
EP3732810A1 (en) 2018-04-09 2020-11-04 Google LLC Fifth generation new radio uplink multiplexing assisted by shared grant-free transmission
CN108495198A (en) * 2018-05-11 2018-09-04 北京九方广维科技有限公司 A kind of Vehicular video intercommunication method and system
CN110198552B (en) * 2019-04-29 2022-03-15 中国联合网络通信集团有限公司 Method and device for calculating downlink throughput

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546409A (en) * 1991-07-18 1996-08-13 Canon Kabushiki Kaisha Error correction encoding and decoding system
KR100371157B1 (en) * 1996-02-02 2003-03-26 엘지전자 주식회사 Method for correcting error of digital vcr
US20040199847A1 (en) * 2002-05-03 2004-10-07 Stefano Calabro Method and apparatus for improving the performance of concatenated codes
US20060013168A1 (en) * 2004-06-04 2006-01-19 Avneesh Agrawal Coding and modulation for broadcast and multicast services in a wireless communication system

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5310650A (en) * 1986-09-29 1994-05-10 Abbott Laboratoires Method and device for improved reaction kinetics in nucleic acid hybridizations
US4983383A (en) * 1988-11-21 1991-01-08 The Procter & Gamble Company Hair care compositions
IL102486A (en) * 1991-10-04 1997-11-20 Orgenics Ltd Method and apparatus for detection of nucleic acid sequences with a nucleic acid probe
US5377207A (en) * 1992-09-03 1994-12-27 The United States Of America As Represented By The United States National Aeronautics And Space Administration Mappings between codewords of two distinct (N,K) Reed-Solomon codes over GF (2J)
KR950010768B1 (en) 1993-10-20 1995-09-22 주식회사 Lg전자 Error correction code decoding apparatus and method
KR950010768A (en) 1993-10-30 1995-05-15 문치완 Bee Feed Manufacturing Method
US6021433A (en) 1996-01-26 2000-02-01 Wireless Internet, Inc. System and method for transmission of data
US5826018A (en) 1996-04-02 1998-10-20 Hewlett-Packard Company Method and appparatus for automatically determining the starting location and starting protocol of LAN data in a WAN link frame
US5983383A (en) 1997-01-17 1999-11-09 Qualcom Incorporated Method and apparatus for transmitting and receiving concatenated code data
US6085253A (en) 1997-08-01 2000-07-04 United Video Properties, Inc. System and method for transmitting and receiving data
US7058027B1 (en) * 1998-09-16 2006-06-06 Scientific Research Corporation Systems and methods for asynchronous transfer mode and internet protocol
US6318994B1 (en) * 1999-05-13 2001-11-20 Align Technology, Inc Tooth path treatment plan
DE60043048D1 (en) 1999-12-01 2009-11-12 Alcatel Canada Inc Method and apparatus for a physical layer interface in a wireless communication system
US6928521B1 (en) * 2000-08-01 2005-08-09 International Business Machines Corporation Method, system, and data structures for using metadata in updating data in a storage device
US7031249B2 (en) 2000-10-27 2006-04-18 Sharp Laboratories Of America, Inc. Outer code for CSMA systems using an OFDM physical layer in contention-free mode
US6640327B1 (en) * 2000-11-01 2003-10-28 Sharp Laboratories Of America, Inc. Fast BCH error detection and correction using generator polynomial permutation
WO2002078196A1 (en) 2001-03-22 2002-10-03 University Of Florida Method and coding means for error-correction utilizing concatenated parity and turbo codes
US20030081564A1 (en) 2001-10-29 2003-05-01 Chan James C. K. Wireless transmission and recording of images from a video surveillance camera
US20050079493A1 (en) * 2002-11-09 2005-04-14 Tam Joseph Wing On DNA fingerprinting using allelic specific oligonucleotide reversed dot blot (ASO-RDB) flow through hybridization process and device
US7343540B2 (en) 2002-04-25 2008-03-11 Pmc - Sierra Israel Ltd. Forward error correction coding in ethernet networks
KR100458878B1 (en) 2002-05-03 2004-12-03 학교법인 경희대학교 Method for transmitting and receiving a variable size packet based on foward error correction coding
US7177658B2 (en) 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
US6901083B2 (en) 2002-10-25 2005-05-31 Qualcomm, Incorporated Method and system for code combining at an outer decoder on a communication system
US7260764B2 (en) 2002-11-26 2007-08-21 Qualcomm Incorporated Multi-channel transmission and reception with block coding in a communication system
US7197685B2 (en) * 2003-01-02 2007-03-27 Samsung Electronics, Co., Ltd. Robust signal transmission in digital television broadcasting
KR100498347B1 (en) 2003-04-01 2005-07-01 엘지전자 주식회사 Data-processing method for supporting amr codec
US7464319B2 (en) 2003-04-29 2008-12-09 Utah State University Forward error correction with codeword cross-interleaving and key-based packet compression
TWI239685B (en) 2003-05-13 2005-09-11 Jsr Corp Flaky probe, its manufacturing method and its application
US7318187B2 (en) 2003-08-21 2008-01-08 Qualcomm Incorporated Outer coding methods for broadcast/multicast content and related apparatus
US7065144B2 (en) 2003-08-27 2006-06-20 Qualcomm Incorporated Frequency-independent spatial processing for wideband MISO and MIMO systems
US6952573B2 (en) 2003-09-17 2005-10-04 Motorola, Inc. Wireless receiver with stacked, single chip architecture
GB2406483A (en) 2003-09-29 2005-03-30 Nokia Corp Burst transmission
US8526412B2 (en) 2003-10-24 2013-09-03 Qualcomm Incorporated Frequency division multiplexing of multiple data streams in a wireless multi-carrier communication system
US20050088986A1 (en) * 2003-10-27 2005-04-28 Feng-Wen Sun Systems and methods for distributing data
GB2407946A (en) 2003-11-05 2005-05-11 Nokia Corp Forward Error Correction decoder suitable for use with data comprising variable padding
JP4022625B2 (en) * 2004-03-08 2007-12-19 独立行政法人情報通信研究機構 Communication system, communication method, base station, and mobile station
US7471598B2 (en) 2004-05-26 2008-12-30 Nero Ag Apparatus and method for copying data
KR20050114162A (en) 2004-05-31 2005-12-05 삼성전자주식회사 Method and apparatus for decoding inner code and outer code in a mobile communication system using reed-solomon code
KR100631039B1 (en) * 2004-06-28 2006-10-09 (주)케이에이엘 Digital door lock
GB2415873A (en) 2004-06-30 2006-01-04 Nokia Corp Erasure information generation in Forward Error Correction decoding
CN100362782C (en) 2004-08-24 2008-01-16 华为技术有限公司 Method for recovering drop-out data unit
US7660245B1 (en) 2004-09-16 2010-02-09 Qualcomm Incorporated FEC architecture for streaming services including symbol-based operations and packet tagging
EP1803245A1 (en) 2004-10-07 2007-07-04 Nokia Corporation Efficient source blocking algorithm for fec for mbms streaming
CN1294776C (en) * 2004-11-01 2007-01-10 华为技术有限公司 Method for realizing multi-transmitting business macro diversity
CN1285194C (en) 2004-11-01 2006-11-15 华为技术有限公司 Method for realizing multiplaying service resource indication
CN100355299C (en) 2004-11-16 2007-12-12 华为技术有限公司 Method for receiving multicast service
CN101142778B (en) 2005-01-18 2013-01-02 台湾积体电路制造股份有限公司 Improved ip datagram de-encapsulation
GB2437900A (en) * 2005-02-10 2007-11-07 Siano Mobile Silicon Ltd System and method for mitigating memory requirements during MPE-FEC processing
US7539927B2 (en) * 2005-04-14 2009-05-26 Industrial Technology Research Institute High speed hardware implementation of modified Reed-Solomon decoder
RU2386224C2 (en) 2005-04-25 2010-04-10 Самсунг Электроникс Ко., Лтд. Method for transmission/reception of data in communication system
US20060239265A1 (en) 2005-04-25 2006-10-26 Samsung Electronics Co., Ltd. System and method for providing broadcast service in a mobile communication system
US7370258B2 (en) 2005-04-28 2008-05-06 Sandbridge Technologies Inc. Iterative concatenated convolutional Reed-Solomon decoding method
US7823048B2 (en) * 2005-05-31 2010-10-26 Nokia Corporation Buffering of data from a data stream having error correction elements
KR20070000006A (en) * 2005-06-24 2007-01-02 삼성광주전자 주식회사 Hermetic type compressor
US7856026B1 (en) 2005-06-28 2010-12-21 Altera Corporation Configurable central memory buffered packet switch module for use in a PLD
US7936831B2 (en) * 2005-07-20 2011-05-03 Qualcomm Incorporated Methods and apparatus for implementing and using an in-band rate indicator
TWI401910B (en) 2005-09-19 2013-07-11 St Ericsson Sa Apparatus and method for error correction in mobile wireless applications incorporating multi-level and adaptive erasure data
TWI415416B (en) 2005-09-19 2013-11-11 St Ericsson Sa Apparatus and method for error correction in mobile wireless applications incorporating erasure table data
CA2562212C (en) 2005-10-05 2012-07-10 Lg Electronics Inc. Method of processing traffic information and digital broadcast system
US7644343B2 (en) 2006-01-17 2010-01-05 Rajugopal Gubbi Error resilience methods for multi-protocol encapsulation forward error correction implementations
US7506761B2 (en) * 2006-02-24 2009-03-24 Navajo Manufacturing Company, Inc. Drug display card
US20080022345A1 (en) 2006-06-29 2008-01-24 Samsung Electronics Co., Ltd. Demodulator and demodulation method
US7475330B2 (en) * 2006-08-24 2009-01-06 Motorola, Inc. Method and apparatus for generating a punctured symbol vector for a given information vector
US20080056219A1 (en) 2006-08-29 2008-03-06 Muthaiah Venkatachalam Broadband wireless access network and methods for joining multicast broadcast service sessions within multicast broadcast service zones
US8320248B2 (en) * 2006-09-13 2012-11-27 Broadcom Corporation Method and system for communicating data in xDSL using data retransmission
US7852826B2 (en) * 2006-09-29 2010-12-14 Intel Corporation Techniques to communication MAP information elements in a wireless network
US8117514B2 (en) * 2006-11-13 2012-02-14 Qualcomm Incorporated Methods and apparatus for encoding data in a communication network
US7688908B2 (en) 2007-03-12 2010-03-30 Samsung Electronics Co., Ltd. System and method for processing wireless high definition video data using a shortened last codeword
BRPI0813991A2 (en) * 2007-06-28 2017-08-08 Samsung Electronics Co Ltd ATSC MOBILE / PORTABLE RFP A-VSB MCAST RESPONSE AND A-VSB PHYSICAL AND LINK LAYERS WITH SINGLE FREQUENCY NETWORK
US7903540B2 (en) 2007-08-02 2011-03-08 Alvarion Ltd. Method and device for synchronization in wireless networks
US8095856B2 (en) * 2007-09-14 2012-01-10 Industrial Technology Research Institute Method and apparatus for mitigating memory requirements of erasure decoding processing
KR101559771B1 (en) * 2007-09-21 2015-10-13 엘지전자 주식회사 Digital broadcasting system and method of processing data in digital broadcasting system
WO2009038442A2 (en) * 2007-09-21 2009-03-26 Lg Electronics Inc. Digital broadcasting receiver and method for controlling the same
US7975281B2 (en) * 2007-09-21 2011-07-05 Lg Electronics, Inc. Digital broadcasting system and method of processing data in digital broadcasting system
WO2009061602A1 (en) * 2007-10-19 2009-05-14 Zte U.S.A., Inc. Enhanced wimax mbs service on separate carrier frequency
US8250441B2 (en) 2007-12-11 2012-08-21 Wi-Lan Inc. Outer coding framework for application packet error rate minimization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546409A (en) * 1991-07-18 1996-08-13 Canon Kabushiki Kaisha Error correction encoding and decoding system
KR100371157B1 (en) * 1996-02-02 2003-03-26 엘지전자 주식회사 Method for correcting error of digital vcr
US20040199847A1 (en) * 2002-05-03 2004-10-07 Stefano Calabro Method and apparatus for improving the performance of concatenated codes
US20060013168A1 (en) * 2004-06-04 2006-01-19 Avneesh Agrawal Coding and modulation for broadcast and multicast services in a wireless communication system

Also Published As

Publication number Publication date
WO2009076318A1 (en) 2009-06-18
WO2009076467A2 (en) 2009-06-18
US20090150742A1 (en) 2009-06-11
WO2009076462A1 (en) 2009-06-18
US20090147871A1 (en) 2009-06-11
WO2009076467A3 (en) 2009-07-30
US20120297269A1 (en) 2012-11-22
US20090150753A1 (en) 2009-06-11
US20090150752A1 (en) 2009-06-11
US8108748B2 (en) 2012-01-31
US20090147877A1 (en) 2009-06-11
US8671334B2 (en) 2014-03-11
WO2009076319A2 (en) 2009-06-18
WO2009076370A3 (en) 2009-08-13
US20090150736A1 (en) 2009-06-11
WO2009076319A3 (en) 2009-08-06
US8732542B2 (en) 2014-05-20
WO2009076370A2 (en) 2009-06-18
US8195998B2 (en) 2012-06-05
CN101971672A (en) 2011-02-09
US8261164B2 (en) 2012-09-04
CN101971672B (en) 2014-11-26
US20090150741A1 (en) 2009-06-11
US20130343258A1 (en) 2013-12-26
WO2009076320A1 (en) 2009-06-18
US8510619B2 (en) 2013-08-13
US8848588B2 (en) 2014-09-30
US8250441B2 (en) 2012-08-21
US8547953B2 (en) 2013-10-01
US20140019832A1 (en) 2014-01-16

Similar Documents

Publication Publication Date Title
US8250441B2 (en) Outer coding framework for application packet error rate minimization
US11838122B2 (en) Code block segmentation and configuration for concatenated turbo and RS coding
US9143277B2 (en) Apparatus and method for support of communications services and applications over relatively low signal-to-noise ratio links
EP2765709A2 (en) Apparatus and method for improved modulation and coding schemes for broadband satellite communications systems
US11552654B2 (en) Forward error control coding
WO2010028167A1 (en) Mbs with outer coding and adjusted frame reference
EP2802079A2 (en) Apparatus and method for improved modulation and coding schemes for broadband satellite communications systems
EP2822182B1 (en) Apparatus and method for improved modulation and coding schemes for broadband satellite communications systems
KR20170002187A (en) Transmitter, receiver and controlling method thereof
BR102014003145B1 (en) APPARATUS AND METHOD FOR IMPROVED MODULATION AND CODING SCHEMES FOR BROADBAND SATELLITE COMMUNICATIONS SYSTEMS

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08859211

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08859211

Country of ref document: EP

Kind code of ref document: A1