# US 8,542,752 B2 · Hierarchical coding for multicast messages

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,542,752 B2
- Document ID: US8542752B2
- Status: Granted
- Kind: B2
- Application number: 13/169,289
- Filed: 2011-06-27
- Published: 2012-10-11
- Granted: 2013-09-24
- Earliest claimed: 2005-12-05
- Assignees: QUALCOMM Incorporated
- Applicants: Alexei Gorokhov; Avneesh Agrawal; Arvind Vijay Keerthi
- Inventors: Alexei Gorokhov; Avneesh Agrawal; Arvind Vijay Keerthi
- Web page: https://patentgrep.com/patent/US8542752B2

## CPC

- H03M 13/2945: {using at least three error correction codes (H03M13/2957 takes precedence)}
- H03M 13/2903: {Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes}
- H03M 13/2948: {Iterative decoding (H03M13/2957 takes precedence)}
- H03M 13/2978: {Particular arrangement of the component decoders}
- H03M 13/6362: {by puncturing}
- H03M 13/6513: {Support of multiple code types, e.g. unified decoder for LDPC and turbo codes}
- H04L 1/0041: {Arrangements at the transmitter end}
- H04L 1/005: {Iterative decoding, including iteration between signal detection and decoding operation}
- H04L 1/0065: {Serial concatenated codes}
- H04L 1/007: {Unequal error protection (for format H04L1/0078; for codes per se H03M13/35)}
- H04N 21/2381: Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network {(transmission of MPEG streams over ATM H04L12/5601)}
- H04N 21/2383: Channel coding {or modulation} of digital bit-stream, e.g. QPSK modulation (arrangements for detecting or preventing errors in the information received by adapting the channel coding H04L1/0009; analogue front ends or means for connecting modulators, demodulators or transceivers to a transmission line H04L27/0002)
- H04N 21/2402: {Monitoring of the downstream path of the transmission network, e.g. bandwidth available (traffic monitoring in data switching networks H04L43/00; monitoring data switching networks utilization H04L43/0876)}
- H04N 21/2404: {Monitoring of server processing errors or hardware failure (error or fault detection G06F11/07; monitoring in general G06F11/30)}
- H04N 21/2405: {Monitoring of the internal components or processes of the server, e.g. server load (allocation of resources in multiprogramming arrangements G06F9/50; performance measurement of computer activity G06F11/34)}
- H04N 21/6405: Multicasting {(data broadcast and multicast in packet switching networks H04L12/18)}
- H04N 21/6408: Unicasting
- H04L 5/023: {Multiplexing of multicarrier modulation signals, e.g. multi-user orthogonal frequency division multiple access [OFDMA] (multicarrier modulation H04L27/2601)}
- H04L 2001/0093: {Point-to-multipoint}
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Techniques for sending signaling information using hierarchical coding are described. With hierarchical coding, individual messages for users are encoded using multiple interconnected encoders such that (1) the message for each user is sent at a data rate suitable for that user and (2) a single multicast message is generated for the messages for all users. A base station determines data rates supported by the users and the code rates to achieve these data rates. Each data rate is determined by one or more code rates. Signaling information for the users is mapped to data blocks to be sent at different data rates. Each data block is then encoded in accordance with the code rate(s) associated with the data rate for that data block. A final coded block is generated for all users and transmitted. Each user performs the complementary decoding to recover the message sent to that user.

## Claims

### Claim 1

A method comprising:
encoding first input data for a first user in accordance with a first code rate to obtain first coded data;
encoding third input data for a third user in accordance with a third code rate to obtain third coded data;
jointly encoding second input data for a second user with the first and third coded data in accordance with a second code rate to obtain second coded data;
sending the first input data at a first data rate determined by the first and second code rates;
sending the second input data at a second data rate determined by the second code rate; and
sending the third input data at a third data rate determined by the second and third code rates.

### Claim 2 (depends on 1)

The method of claim 1, wherein encoding the first input data further comprises:
encoding the first input data with a base code, and
puncturing an output of the base code with a puncture pattern for the first code rate to obtain the first coded data.

### Claim 3 (depends on 2)

The method of claim 2, and further comprising:
determining a plurality of data rates for a plurality of users; and
determining a plurality of code rates to achieve the plurality of data rates, the plurality of code rates comprising at least the first code rate, the second code rate, and the third code rate.

### Claim 4 (depends on 2)

The method of claim 2, and further comprising at least one of:
mapping signaling information for the first user to the first input data;
mapping signaling information for the second user to the second input data; and
mapping signaling information for the third user to the third input data.

### Claim 5 (depends on 4)

The method of claim 4, and further comprising at least one of:
scrambling the signaling information for the first user with a scrambling code for the first user prior to the first input data being encoded;
scrambling the signaling information for the second user with a scrambling code for the second user prior to the second input data being encoded; and/or
scrambling the signaling information for the third user with a scrambling code for the third user prior to the third input data being encoded.

### Claim 6

An apparatus comprising:
means for encoding first input data for a first user in accordance with a first code rate to obtain first coded data;
means for encoding third input data for a third user in accordance with a third code rate to obtain third coded data; and
means for jointly encoding second input data for a second user with the first and third coded data in accordance with a second code rate to obtain second coded data.

### Claim 7 (depends on 6)

The apparatus of claim 6, wherein the means for encoding the first input data further comprises:
means for encoding the first input data with a base code, and
means for puncturing an output of the base code with a puncture pattern for the first code rate to obtain the first coded data.

### Claim 8 (depends on 7)

The apparatus of claim 7, and further comprising:
means for determining a plurality of data rates for a plurality of users; and
means for determining a plurality of code rates to achieve the plurality of data rates, the plurality of code rates comprising at least the first code rate, the second code rate, and the third code rate.

### Claim 9 (depends on 7)

The apparatus of claim 7, and further comprising at least one of:
means for mapping signaling information for the first user to the first input data;
means for mapping signaling information for the second user to the second input data; and/or
means for mapping signaling information for the third user to the third input data.

### Claim 10 (depends on 9)

The apparatus of claim 9, and further comprising at least one of:
means for scrambling the signaling information for the first user with a scrambling code for the first user prior to the first input data being encoded;
means for scrambling the signaling information for the second user with a scrambling code for the second user prior to the second input data being encoded; and/or
means for scrambling the signaling information for the third user with a scrambling code for the third user prior to the third input data being encoded.

### Claim 11

An article comprising:
a non-transitory computer storage device having computer implementable code stored therein that is executable by at least one processor to:
encode first input data for a first user in accordance with a first code rate to obtain first coded data;
encode third input data for a third user in accordance with a third code rate to obtain third coded data; and
jointly encode second input data for a second user with the first and third coded data in accordance with a second code rate to obtain second coded data.

### Claim 12 (depends on 11)

The article of claim 11, the computer implementable code being further executable by the at least one processor to:
encode the first input data with a base code, and
puncture an output of the base code with a puncture pattern for the first code rate to obtain the first coded data.

### Claim 13 (depends on 12)

The article of claim 12, the computer implementable code being further executable by the at least one processor to:
determine a plurality of data rates for a plurality of users; and
determine a plurality of code rates to achieve the plurality of data rates, the plurality of code rates comprising at least the first code rate, the second code rate, and the third code rate.

### Claim 14 (depends on 12)

The article of claim 12, the computer implementable code being further executable by the at least one processor to map at least one of:
signaling information for the first user to the first input data;
signaling information for the second user to the second input data; and/or
signaling information for the third user to the third input data.

### Claim 15 (depends on 14)

The article of claim 14, the computer implementable code being further executable by the at least one processor to scramble at least one of:
the signaling information for the first user with a scrambling code for the first user prior to the first input data being encoded;
the signaling information for the second user with a scrambling code for the second user prior to the second input data being encoded; and/or
the signaling information for the third user with a scrambling code for the third user prior to the third input data being encoded.

### Claim 16

An apparatus comprising:
memory; and
at least one processor to:
encode first input data for a first user in accordance with a first code rate to obtain first coded data;
encode third input data for a third user in accordance with a third code rate to obtain third coded data; and
jointly encode second input data for a second user with the first and third coded data in accordance with a second code rate to obtain second coded data.

### Claim 17 (depends on 16)

The apparatus of claim 16, wherein to encode the first input data the at least one processor to further:
encode the first input data with a base code, and
puncture an output of the base code with a puncture pattern for the first code rate to obtain the first coded data.

### Claim 18 (depends on 17)

The apparatus of claim 17, the at least one processor to further:
determine a plurality of data rates for a plurality of users; and
determine a plurality of code rates to achieve the plurality of data rates, the plurality of code rates comprising at least the first code rate, the second code rate, and the third code rate.

### Claim 19 (depends on 17)

The apparatus of claim 17, the at least one processor to further map at least one of:
signaling information for the first user to the first input data;
signaling information for the second user to the second input data; and
signaling information for the third user to the third input data.

### Claim 20 (depends on 19)

The apparatus of claim 19, the at least one processor to further, scramble at least one of:
the signaling information for the first user with a scrambling code for the first user prior to the first input data being encoded;
the signaling information for the second user with a scrambling code for the second user prior to the second input data being encoded; and/or
the signaling information for the third user with a scrambling code for the third user prior to the third input data being encoded.
