# US 7,467,344 B2 · Devices and system for exchange of digital high-fidelity audio and voice through a wireless link

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

- Number: US 7,467,344 B2
- Document ID: US7467344B2
- Status: Granted
- Kind: B2
- Application number: 11/317,705
- Filed: 2005-12-23
- Published: 2007-07-12
- Granted: 2008-12-16
- Earliest claimed: 2005-12-23
- Assignees: Avnera Corporation
- Inventors: Debarag Narayan Banerjee
- Web page: https://patentgrep.com/patent/US7467344B2

## CPC

- H03M 13/2909: {Product codes}
- H03M 13/6306: {Error control coding in combination with Automatic Repeat reQuest [ARQ] and diversity transmission, e.g. coding schemes for the multiple transmission of the same information or the transmission of incremental redundancy (H03M13/3761, H03M13/3769 and H03M13/635 take precedence)}
- H04L 1/0041: {Arrangements at the transmitter end}
- H04L 1/0057: {Block codes (H04L1/0061, H04L1/0064 take precedence)}
- H04L 1/0065: {Serial concatenated codes}
- H04L 1/0071: {Use of interleaving (interleaving per se H03M13/27)}
- H03M 13/1515: {Reed-Solomon codes}
- H03M 13/152: {Bose-Chaudhuri-Hocquenghem [BCH] codes}
- 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)

## Abstract

Systems and methods for communicating source data between a source device and a listener device are disclosed. In an exemplary embodiment, source data is encoded by organizing at least a selected portion of source data into a data block having rows and columns. Encoded columns are formed by appending to each column error correction data derived from that column using a selected error correction code. Encoded rows are formed by appending to each row error correction data derived from that row using a selected error correct code. In an exemplary embodiment, encoded rows of source data (together with appended FEC data) and a first predetermined number of rows of FEC data are transmitted together, such that the first predetermined number of rows is less than all rows of error correction data. In an exemplary embodiment, source data is organized using interleaving.

## Claims

### Claim 1

A system for communicating source data from a data source over a communications link, comprising a source device, the source device including:
an encoder organizing a selected portion of source data into a data block having rows and columns, the encoder forming an encoded column from each column of the data block by appending column error-correction data for the column to the column, the column error-correction data being formed for each column by using a Reed-Solomon code to form the column error-correction data, and forming an encoded row from each row of the data block and from each row of column error-correction data by appending row error-correction data for the row to the row, the row error-correction data being formed for each row by using a BCH-type code to form the row error-correction data; and
a transmitter transmitting each encoded row and a first predetermined number of rows of column error-correction data of the data block over the communication link, the first predetermined number of rows being less than a total number of rows formed by column error-correction data.

### Claim 2 (depends on 1)

The system according to claim 1, wherein the transmitter of the source device further transmits a second predetermined number of rows of column error-correction data when a number of errors contained in the transmitted encoded rows and the first predetermined number of rows of column error-correction data, when received, exceeds an error correction capability of the transmitted row error-correction data and the first predetermined number of rows of column error-correction data, the second predetermined number of rows of column error-correction data being selected from the rows of column error-correction data that were not transmitted with the corresponding encoded rows.

### Claim 3 (depends on 2)

The system according to claim 2, wherein the second predetermined number of rows are transmitted with at least one encoded row of a subsequent data block when the number of rows in error exceed the first predetermined number of rows of column error-correction data, but do not exceed a sum of the first and second predetermined number of rows of column error-correction data.

### Claim 4 (depends on 2)

The system according to claim 2, wherein the transmitter further transmits information indicating a change in a communication channel when one of a first predetermined number of frame errors occur within a second predetermined number of frames of data interchange between the source device and a listener device and a third predetermined number of consecutive frame errors, a frame error being an event in which one of a number of errors contained in the transmitted encoded rows, the first predetermined number of rows of column error-correction data and the second predetermined number of rows of column error-correction data, when received, exceeds a predetermined number of errors, or a data packet in a reverse direction indicating a retransmission request is lost.

### Claim 5 (depends on 4)

The system according to claim 4, wherein the change in the communication channel includes a change in carrier frequency of the communication channel.

### Claim 6 (depends on 2)

The system according to claim 2, wherein a power transmit level of the transmitter is changed when a listener device indicates that a signal-to-noise power ratio is insufficient for sustaining an expected number of row errors less than the first predetermined number of rows of column error-correction data.

### Claim 7 (depends on 1)

The system according to claim 1, wherein the data block has 24 rows and 224 columns,
wherein the Reed-Solomon code and the BCH-type code are each based on a Galois field of 256 elements,
wherein the Reed-Solomon code produces a block of 28 coded symbols for each column of the data block such that four of the coded symbols are column error-correction data, and
wherein the BCH-type code produces a block of 248 coded symbols for each row of the data block such that 24 coded symbols are row error-correction data.

### Claim 8 (depends on 1)

The system according to claim 1, wherein the source data is organized into data symbols, each data symbol being formed by a first predetermined number of data bits,
wherein the selected portion of source data is organized by using a second predetermined number of data bits of each data symbol contained in the selected portion of source data, the second predetermined number of data bits being less that the first predetermined number of data bits;
wherein the encoder forms an encoded row by appending each encoded row with a third predetermined number of data bits from each data symbol contained in the row, the second predetermined number plus the third predetermined number being equal to or less than the first predetermined number of data bits, and
wherein the transmitter transmits each appended encoded row and the first predetermined number of rows of column error-correction data.

### Claim 9 (depends on 8)

The system according to claim 8, wherein the first predetermined number of data bits is sixteen data bits, the second predetermined number of data bits is fourteen data bits and the third predetermined number is two data bits.

### Claim 10 (depends on 8)

The system according to claim 8, wherein the data symbols are formed by of pulse code modulated symbols from a multi-channel audio source with the bits are organized in degree of significance such that all bits in a group including the second predetermined number of data bits are of higher significance relative to any bit in a group including of the third predetermined number of data bits.

### Claim 11 (depends on 10)

The system according to claim 10, wherein the first predetermined number of data bits is fourteen data bits, and the second predetermined number of bits is fourteen data bits, and the third predetermined number is zero data bits.

### Claim 12 (depends on 1)

The system according to claim 1, wherein the source device further comprises a receiver receiving a data frame containing a payload portion, the payload portion containing a selected portion of source data from a listener device.

### Claim 13 (depends on 1)

The system according to claim 1, wherein the communications link is one of a wireless communications link and a wired communication link.

### Claim 14 (depends on 1)

The system according to claim 1, wherein the encoder interleaves the source data forming the selection portion of the source data, such that if any predetermined number of consecutive rows are lost, the immediately preceding and succeeding bits of any data samples thus lost will have no errors.

### Claim 15 (depends on 1)

The system according to claim 1, wherein the source data includes one of audio content and image content.

### Claim 16 (depends on 1)

The system according to claim 1, further comprising at least one listener device including a receiver receiving each encoded row and the first predetermined number of rows of column error-correction data of the data block over the communications link, the receiver requesting a second predetermined number of rows of column error-correction data to be transmitted when a number of errors contained in the transmitted encoded rows and the first predetermined number of rows of column error-correction data exceeds an error correction capability of the transmitted row error-correction data and the predetermined number of rows of column error-correction data, the second predetermined number of rows of column error-correction data being selected from the rows of column error-correction data that were not transmitted with the encoded rows corresponding to the second predetermined number of rows of column error-correction data.

### Claim 17

A system for communicating source data from a data source over a communications link, comprising at least one listener device including:
a receiver receiving an encoded data block transmitted over the communication link, the encoded data block being formed by
organizing a selected portion of source data into a data block having rows and columns;
forming an encoded column from each column of the data block by appending column error-correction data for the column to the column, the column error-correction data being formed for each column by using a Reed-Solomon code to form the column error-correction data;
forming an encoded row from each row of the data block and from each row of column error-correction data by appending row error-correction data for the row to the row, the row error-correction data being formed for each row by using a BCH-type code to form the row error-correction data; and
transmitting each encoded row and a first predetermined number of rows of column error-correction data of the data block over the communication link, the first predetermined number of rows being less than a total number of rows formed by column error-correction data; and
a transmitter transmitting a request for a second predetermined number of rows of column error-correction data to be transmitted when a number of errors contained in the transmitted encoded rows and the first predetermined number of rows of column error-correction data exceeds an error correction capability of the transmitted row error-correction data and the predetermined number of rows of column error-correction data, the second predetermined number of rows of column error-correction data being selected from the rows of column error-correction data that were not transmitted with the encoded rows corresponding to the second predetermined number of rows of column error-correction data.

### Claim 18

A method of communicating source data from a data source over a communications link, the method comprising:
organizing a selected portion of source data into a data block having rows and columns;
forming an encoded column from each column of the data block by appending column error-correction data for the column to the column, the column error-correction data being formed for each column by using a Reed-Solomon code to form the column error-correction data;
forming an encoded row from each row of the data block and from each row of column error-correction data by appending row error-correction data for the row to the row, the row error-correction data being formed for each row by using a BCH-type code to form the row error-correction data; and
transmitting from a source device each encoded row and a first predetermined number of rows of column error-correction data of the data block over the communication link, the first predetermined number of rows being less than a total number of rows formed by column error-correction data.

### Claim 19 (depends on 18)

The method according to claim 18, further comprising transmitting a second predetermined number of rows of column error-correction data when a number of errors contained in the transmitted encoded rows and the first predetermined number of rows of column error-correction data, when received, exceeds an error correction capability of the transmitted row error-correction data and the first predetermined number of rows of column error-correction data, the second predetermined number of rows of column error-correction data being selected from the rows of column error-correction data that were not transmitted with the corresponding encoded rows.

### Claim 20 (depends on 19)

The method according to claim 19, wherein the second predetermined number of rows are transmitted with at least one encoded row of a subsequent data block.

### Claim 21 (depends on 19)

The method according to claim 19, further comprising transmitting information indicating a change in a communication channel when one of a first predetermined number of frame errors occur within a second predetermined number of frames of data interchange between a source device and the listener device and a third predetermined number of consecutive frame errors, a frame error being an event in which one of a number of errors contained in the transmitted encoded rows, the first predetermined number of rows of column error-correction data and the second predetermined number of rows of column error-correction data, when received, exceeds a predetermined number of errors, and a data packet in a reverse direction indicates a retransmission request is lost.

### Claim 22 (depends on 21)

The method according to claim 21, wherein the change in the communication channel includes a change in a frequency of the communication channel.

### Claim 23 (depends on 19)

The method according to claim 19, further changing a power transmit level when the listener device indicates through use of a data packet in a reverse direction that a signal-to-noise power ratio is insufficient for sustaining an expected number of row errors less than the first predetermined number of rows of column error-correction data.

### Claim 24 (depends on 19)

The method according to claim 19, further comprising interpolating data samples within the received encoded rows when a number of errors contained in the transmitted encoded rows, the first predetermined number of rows of column error-correction data and the second predetermined number of rows of column error-correction data, when received, exceeds a predetermined number of errors.

### Claim 25 (depends on 19)

The method according to claim 19, further comprising reproducing a previously received data block by reversing and time-domain windowing the previously received data block when a number of errors contained in the transmitted encoded rows, the first predetermined number of rows of column error-correction data and the second predetermined number of rows of column error-correction data, when received, exceeds an error correction capability of the transmitted encoded rows, the first predetermined number of rows of column error-correction data and the second predetermined number of rows of column error-correction data.

### Claim 26 (depends on 18)

The method according to claim 18, wherein the data block has 24 rows and 224 columns,
wherein the Reed-Solomon code and the BCH-type code are each based on a Galois field of 256 elements,
wherein the Reed-Solomon code produces a block of 28 coded symbols for each column of the data block such that four of the coded symbols are column error-correction data, and
wherein the BCH-type code produces a block of 248 coded symbols for each row of the data block such that 24 coded symbols are row error-correction data.

### Claim 27 (depends on 18)

The method according to claim 18, wherein the source data is organized into data symbols, each data symbol being formed by a first predetermined number of data bits,
wherein organizing the selected portion of source data into the data block includes organizing the selected portion of source data by using a second predetermined number of data bits of each data symbol contained in the selected portion of source data, the second predetermined number of data bits being less that the first predetermined number of data bits;
wherein forming an encoded row includes appending each encoded row with a third predetermined number of data bits from each data symbol contained in the row, the second predetermined number plus the third predetermined number being equal to or less than the first predetermined number of data bits, and
wherein transmitting includes transmitting each appended encoded row and the first predetermined number of rows of column error-correction data.

### Claim 28 (depends on 27)

The method according to claim 27, wherein the first predetermined number of data bits is sixteen data bits, the second predetermined number of data bits is fourteen data bits and the third predetermined number is two data bits.

### Claim 29 (depends on 18)

The method according to claim 18, wherein the source data is organized into data symbols, each data symbol being formed by a first predetermined number of data bits, and
wherein organizing the selected portion of source data into the data block includes organizing the selected portion of source data into the data block by using the second predetermined number of data bits of each data symbol contained in the selected portion of source data, the second predetermined number of data bits being less that the first predetermined number of data bits.

### Claim 30 (depends on 29)

The method according to claim 29, wherein the first predetermined number of data bits is sixteen data bits, and the second predetermined number of bits is fourteen data bits.

### Claim 31 (depends on 18)

The method according to claim 18, further comprising receiving a data frame containing a payload portion, the payload portion containing a selected portion of source data from a listener device.

### Claim 32 (depends on 18)

The method according to claim 18, wherein the communications link is one of a wireless communications link and a wired communication link.

### Claim 33 (depends on 18)

The method according to claim 18, wherein organizing the selected portion of source data into a data block includes interleaving the source data forming the selection portion of the source data.

### Claim 34 (depends on 18)

The method according to claim 18, wherein the source data includes one of audio content and image content.

### Claim 35 (depends on 18)

The method according to claim 18, further comprising
receiving at a listener device each encoded row and the first predetermined number of rows of column error-correction data of the data block; and
requesting a second predetermined number of rows of column error-correction data to be transmitted when a number of errors contained in the transmitted encoded rows and the first predetermined number of rows of column error-correction data exceeds an error correction capability of the transmitted row error-correction data and the predetermined number of rows of column error-correction data, the second predetermined number of rows of column error-correction data being selected from the rows of column error-correction data that were not transmitted with the encoded rows corresponding to the second predetermined number of rows of column error-correction data.

### Claim 36

A method of communicating source data from a data source over a communications link, the method comprising:
receiving an encoded data block transmitted over the communication link, the encoded data block being formed by
organizing a selected portion of source data into a data block having rows and columns;
forming an encoded column from each column of the data block by appending column error-correction data for the column to the column, the column error-correction data being formed for each column by using a Reed-Solomon code to form the column error-correction data;
forming an encoded row from each row of the data block and from each row of column error-correction data by appending row error-correction data for the row to the row, the row error-correction data being formed for each row by using a BCH-type code to form the row error-correction data; and
transmitting each encoded row and a first predetermined number of rows of column error-correction data of the data block over the communication link, the first predetermined number of rows being less than a total number of rows formed by column error-correction data; and
requesting a second predetermined number of rows of column error-correction data to be transmitted when a number of errors contained in the transmitted encoded rows and the first predetermined number of rows of column error-correction data exceeds an error correction capability of the transmitted row error-correction data and the predetermined number of rows of column error-correction data, the second predetermined number of rows of column error-correction data being selected from the rows of column error-correction data that were not transmitted with the encoded rows corresponding to the second predetermined number of rows of column error-correction data.
