# US 12,119,928 B2 · Systems and methods to generate copies of data for transmission over multiple communication channels

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

- Number: US 12,119,928 B2
- Document ID: US12119928B2
- Status: Granted
- Kind: B2
- Application number: 17/989,117
- Filed: 2022-11-17
- Published: 2023-05-11
- Granted: 2024-10-15
- Earliest claimed: 2017-01-13
- Assignees: Dolby Laboratories Licensing Corporation
- Applicants: Dolby Laboratories Licensing Corporation
- Inventors: Mingchao Yu; Mark Craig Reed
- Web page: https://patentgrep.com/patent/US12119928B2

## CPC

- H04L 1/0041: {Arrangements at the transmitter end}
- H04L 1/0033: {arrangements specific to the transmitter}
- H04L 1/0045: {Arrangements at the receiver end}
- H04L 1/08: by repeating transmission, e.g. Verdan system {(H04L1/1858 and H04L1/189 take precedence)}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 13/37: using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing
- H04L 12/4015: {by scheduling the transmission of messages at the communication node}
- H04L 67/60: Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70)
- H04L 2001/0096: {Channel splitting in point-to-point links}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods to transmit data over multiple communication channels in parallel with forward error correction. Original packets are evenly distributed to the channels as the initial systematically channel-encoded packets. Subsequent channel-encoded packets are configured to be linearly independent of their base sets of channel-encoded packets, where a base set for a subsequent channel-encoded packet includes those scheduled to be transmitted before the subsequent packet in the same channel as the subsequent packet, and optionally one or more initial packets from other channels. The compositions of the sequences of the encoded packets can be predetermined without the content of the packets; and the channel-encoded packets can be generated from the original packets on-the-fly by the transmitters of the channels during transmission. When a sufficient number of packets have been received via the channels, a recipient may terminate their transmissions.

## Claims

### Claim 1

A method implemented in a computing apparatus, the method comprising:
identifying a data segment to be transmitted via a plurality of parallel communication channels;
generating a plurality of original packets of a same length, by partitioning the data segment;
generating a plurality of channel-encoded packets by combining, using a predetermined function, a random subset of the original packets partitioned from the data segment,
wherein the predetermined function is configured to implement a forward error correction technique,
wherein the predetermined function is configured to apply an XOR operation to the random subset of the original packets;
via each communication channel of the plurality of parallel communication channels, transmitting (i) a respective first subset of the original packets partitioned from the data segment and (ii) a respective second subset of the channel-encoded packets; and
in response to a determination by a recipient device coupled to the plurality of parallel communication channels that a received set of packets is sufficient to reconstruct the data segment, causing termination of the transmitting.

### Claim 2 (depends on 1)

The method according to claim 1, wherein a size of the respective first subset allocated to a corresponding parallel communication channel is proportional to a transmission speed of the corresponding parallel communication channel.

### Claim 3 (depends on 1)

The method according to claim 1, wherein, for each communication channel of the plurality of parallel communication channels, original packets other than those included in the respective first subset are used to generate channel-encoded packets included in the respective second subset.

### Claim 4 (depends on 1)

The method according to claim 1, wherein, for each communication channel of the plurality of parallel communication channels, the respective second subset is transmitted after an entirety of the respective first subset.

### Claim 5 (depends on 4)

The method according to claim 4, wherein a channel-encoded packet of the respective second subset is linearly independent of the original packets included in the respective first subset that are transmitted via a respective communication channel prior to the channel-encoded packet being transmitted via the respective communication channel.

### Claim 6 (depends on 5)

The method according to claim 5, wherein the channel-encoded packet of the respective second subset is linearly independent of packets that are transmitted via other communication channels besides the respective communication channel prior to the channel-encoded packet being transmitted via the respective communication channel.

### Claim 7 (depends on 4)

The method according to claim 4, wherein generating the plurality of channel-encoded packets includes:
identifying the random subset of the original packets prior to generating a transmission schedule; and
generating an actual data for a respective channel-encoded packet after transmitting the entirety of the respective first subset and immediately prior to transmitting the respective channel-encoded packet.

### Claim 8 (depends on 4)

The method according to claim 4, wherein generating the plurality of channel-encoded packets includes:
identifying the random subset of the original packets prior to generating a transmission schedule; and
generating an actual data for the plurality of channel-encoded packets prior to generating the transmission schedule.

### Claim 9 (depends on 8)

The method according to claim 8, further comprising:
after identifying the random subset of the original packets, storing an identification of the random subset of the original packets in a memory.

### Claim 10 (depends on 1)

The method according to claim 1, wherein causing the termination of the transmitting includes receiving an indicator from the recipient device.

### Claim 11

A system comprising:
a memory; and
a processor coupled to the memory, the processor configured to:
identify a data segment to be transmitted by the system via a plurality of parallel communication channels,
generate a plurality of channel-encoded packets by combining, using a predetermined function, a random subset of original packets from a plurality of original packets partitioned from the data segment,
wherein the predetermined function is configured to implement a forward error correction technique,
wherein the predetermined function is configured to apply an XOR operation to the random subset of the original packets,
via each communication channel of the plurality of parallel communication channels, transmit (i) a respective first subset of the original packets partitioned from the data segment and (ii) a respective second subset of the channel-encoded packets, and
in response to a determination by a recipient device coupled to the plurality of parallel communication channels that a received set of packets is sufficient to reconstruct the data segment, cause termination of the transmitting.

### Claim 12 (depends on 11)

The system according to claim 11, wherein a size of the respective first subset allocated to a corresponding parallel communication channel is proportional to a transmission speed of the corresponding parallel communication channel.

### Claim 13 (depends on 11)

The system according to claim 11, wherein, for each communication channel of the plurality of parallel communication channels, original packets other than those included in the respective first subset are used to generate channel-encoded packets included in the respective second subset.

### Claim 14 (depends on 11)

The system according to claim 11, wherein, for each communication channel of the plurality of parallel communication channels, the respective second subset is transmitted after an entirety of the respective first subset.

### Claim 15 (depends on 14)

The system according to claim 14, wherein a channel-encoded packet of the respective second subset is linearly independent of the original packets included in the respective first subset that are transmitted via a respective communication channel prior to the channel-encoded packet being transmitted via the respective communication channel.

### Claim 16 (depends on 15)

The system according to claim 15, wherein the channel-encoded packet of the respective second subset is linearly independent of packets that are transmitted via other communication channels besides the respective communication channel prior to the channel-encoded packet being transmitted via the respective communication channel.
