# US 12,015,429 B2 · Hardware channel-parallel data compression/decompression

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

- Number: US 12,015,429 B2
- Document ID: US12015429B2
- Status: Granted
- Kind: B2
- Application number: 17/969,671
- Filed: 2022-10-19
- Published: 2023-02-16
- Granted: 2024-06-18
- Earliest claimed: 2019-04-17
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Ilia Ovsiannikov; Ali Shafiee Ardestani; Lei Wang; Joseph H. Hassoun
- Web page: https://patentgrep.com/patent/US12015429B2

## CPC

- H03M 7/30: Compression (speech analysis-synthesis for redundancy reduction G10L19/00; for image communication H04N); Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M 7/3066: {by means of a mask or a bit-map}
- G06F 9/30018: {Bit or string instructions}
- G06F 9/30036: {Instructions to perform operations on packed data, e.g. vector, tile or matrix operations}
- G06F 9/30038: {using a mask}
- G06F 9/30145: {Instruction analysis, e.g. decoding, instruction word fields}
- G06F 9/3818: {Decoding for concurrent execution}
- G06F 9/3851: {from multiple instruction streams, e.g. multistreaming}
- H03M 7/40: Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M 7/6005: {Decoder aspects}
- H03M 7/6011: {Encoder aspects}
- H03M 7/6023: {Parallelization}
- H04L 5/023: {Multiplexing of multicarrier modulation signals, e.g. multi-user orthogonal frequency division multiple access [OFDMA] (multicarrier modulation H04L27/2601)}
- 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)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A multichannel data packer includes a plurality of two-input multiplexers and a controller. The plurality of two-input multiplexers is arranged in 2N rows and N columns in which N is an integer greater than 1. Each input of a multiplexer in a first column receives a respective bit stream of 2N channels of bit streams. Each respective bit stream includes a bit-stream length based on data in the bit stream. The multiplexers in a last column output 2N channels of packed bit streams each having a same bit-stream length. The controller controls the plurality of multiplexers so that the multiplexers in the last column output the 2N channels of bit streams that each has the same bit-stream length.

## Claims

### Claim 1

A device for multichannel data packing packer, the device comprising:
a plurality of two-input multiplexers arranged in 2N rows and N columns in which N is an integer greater than 1, wherein:
each input of a multiplexer in a first column receives a respective bit stream of 2N channels of bit streams,
each respective bit stream includes compressed pixel data ,
a first bit stream of the 2N channels of bit streams has a different bit-stream length than a second bit stream of the 2N channels of bit streams, and
multiplexers in a last column generate an output that includes channels of packed bit streams each having a same bit-stream length; and
a processor to perform image-based inference based on the output.

### Claim 2 (depends on 1)

The device for multichannel data packing of claim 1, further comprising a controller that controls the plurality of multiplexers so that the multiplexers in the last column output the 2N channels of bit streams that each have the same bit-stream length.

### Claim 3 (depends on 2)

The device for multichannel data packing of claim 2, wherein:
N=3, and the plurality of multiplexers are arranged in 8 rows and 3 columns,
an output of a multiplexer in the first column is coupled to an input of a multiplexer in a second column in a same row and an output of the multiplexer in the second column is coupled to an input of a multiplexer in a third column in the same row,
a multiplexer in a column is grouped with another multiplexer in a same column to form a plurality of pair of multiplexers in the column, each pair of multiplexers in the column corresponding to a pair of multiplexers in another column,
the outputs of a first multiplexer and a second multiplexer of a pair of multiplexers in the first column are further coupled to the respective inputs to a first multiplexer and a second multiplexer of the corresponding pair of multiplexers in the second column, and
the outputs of a first multiplexer and a second multiplexer of a pair of multiplexers in the second column are further coupled to the respective inputs to the first multiplexer and the second multiplexer of a corresponding pair of multiplexers in the third column.

### Claim 4 (depends on 2)

The device for multichannel data packing of claim 2, wherein:
each bit stream received by a multiplexer in the first column includes a zero bit mask portion and a non-zero data portion, and
the zero bit mask portion of a bit stream indicates locations of zero values in the bit stream.

### Claim 5 (depends on 2)

The device for multichannel data packing of claim 2, wherein:
each input of a multiplexer in the first column further receives a respective bit stream of 2N channels of packed bit streams, each respective packed bit stream comprising a same bit-stream length, and
the controller further controls the plurality of multiplexers so that the multiplexers in the last column output 2N channels of bit streams of unpacked bit streams in which each unpacked bit stream has a bit-stream length corresponding to unpacked data of the bit stream.

### Claim 6 (depends on 5)

The device for multichannel data packing of claim 5, wherein N=3 or N=4.

### Claim 7 (depends on 5)

The device for multichannel data packing of claim 5, wherein a packed bit stream received by a multiplexer in the first column includes a zero bit mask portion and a non-zero data portion.

### Claim 8

A device for multichannel data packing, comprising:
a plurality of two-input multiplexers arranged 8 rows and 3 columns, wherein:
each input of a multiplexer in a first column receives a respective bit stream of 8 channels of bit streams,
each respective bit stream includes compressed pixel data with a bit-stream length based on data in the bit stream, and
multiplexers in a last column generate an output that includes 8 channels of packed bit streams each having a same bit-stream length;
a controller that controls the plurality of multiplexers so that the multiplexers in the last column output the 8 channels of bit streams that each have the same bit-stream length; and
a processor to perform image-based inference based on the output.

### Claim 9 (depends on 8)

The device for multichannel data packing of claim 8, wherein:
an output of a multiplexer in a first column is coupled to an input of a multiplexer in a second column in a same row and an output of the multiplexer in the second column is coupled to an input of a multiplexer in a third column in the same row,
each multiplexer in each column is grouped with another multiplexer in the column to form a plurality of pairs of multiplexers in each column, each pair of multiplexers in the column corresponding to a pair of multiplexers in another column,
the outputs of a first multiplexer and a second multiplexer of a pair of multiplexers in the first column is further coupled to the respective inputs to a first multiplexer and a second multiplexer of the corresponding pair of multiplexers in the second column, and
the outputs of a first multiplexer and the second multiplexer of a first pair of multiplexers in the second column is further coupled to the respective inputs to the first multiplexer and the second multiplexer of a corresponding pair of multiplexers in the third column.

### Claim 10 (depends on 9)

The device for multichannel data packing of claim 9, wherein:
each multiplexer of the first column receives a corresponding bit stream of the 8 channels of bit streams, and
each respective bit stream comprises a bit-stream length based on data in the bit stream.

### Claim 11 (depends on 9)

The device for multichannel data packing of claim 9, wherein each bit stream received by a multiplexer in the first column includes a zero bit mask portion and a non-zero data portion.

### Claim 12 (depends on 11)

The device for multichannel data packing of claim 11, the zero bit mask portion of a bit stream indicates locations of zero values in the bit stream.

### Claim 13 (depends on 9)

The device for multichannel data packing of claim 9, wherein:
each input of a multiplexer in the first column further receives a respective bit stream of the 8 channels of packed bit-streams,
each respective packed bit stream comprises a same bit-stream length, and
the multiplexers in the third column output 8 channels of unpacked bit streams in which each channel has a bit stream length corresponding to unpacked data of the bit stream.

### Claim 14 (depends on 13)

The device for multichannel data packing of claim 13, wherein each packed bit stream received by a multiplexer in the first column includes a zero bit mask portion and a non-zero data portion.

### Claim 15

A device for multichannel data unpacking unpacker, comprising:
a plurality of two-input multiplexers arranged in 2N rows and N columns in which N is an integer greater than 1, wherein:
each input of a multiplexer in a first column receives a respective bit stream of 2N channels of bit-streams,
each respective packed bit stream includes compressed pixel data with a same bit-stream length, and
multiplexers in a last column generate an output that includes 2N channels of unpacked bit-streams each having a bit stream length corresponding to unpacked data of the bit stream; and
a processor to perform image-based inference based on the output.

### Claim 16 (depends on 15)

The device for multichannel data unpacking of claim 15, further comprising a controller that controls the multiplexers so that the multiplexers of the last column output the 2N channels of bit streams of unpacked bit streams in which each has the bit-stream length that corresponds to unpacked data of the bit stream.

### Claim 17 (depends on 16)

The device for multichannel data unpacking of claim 16, wherein each packed bit stream received by a multiplexer in the first column includes a zero bit mask portion and a non-zero data portion.

### Claim 18 (depends on 17)

The device for multichannel data unpacking of claim 17, wherein:
N=3, and the plurality of multiplexers are arranged in 8 rows and 3 columns,
an output of a multiplexer in the first column is coupled to an input of a multiplexer in a second column in a same row and an output of the multiplexer in the second column is coupled to an input of a multiplexer in a third column in the same row,
each multiplexer in each column is grouped with another multiplexer in a same column to form a plurality of pair of multiplexers in the column, each pair of multiplexers in the column corresponding to a pair of multiplexers in another column,
the outputs of a first multiplexer and a second multiplexer of a pair of multiplexers in the first column are further coupled to the respective inputs to a first multiplexer and a second multiplexer of the corresponding pair of multiplexers in the second column, and
the outputs of the first multiplexer and the second multiplexer of a pair of multiplexers in the second column are further coupled to the respective inputs to the first multiplexer and the second multiplexer of a corresponding pair of multiplexers in the third column.

### Claim 19 (depends on 18)

The device for multichannel data unpacking unpacker of claim 18, wherein:
each input of a multiplexer in the first column further receives a respective bit stream of 2N channels of second bit-streams in which each respective second bit stream comprises a bit-stream length based on data in the second bit stream, and
the controller further controls the multiplexers so that the multiplexers in the third column output 2N channels of packed bit-streams in which each bit stream has a same bit-stream length.

### Claim 20 (depends on 19)

The device for multichannel data unpacking of claim 19, wherein:
each second bit stream received by a multiplexer in the first column includes a zero bit mask portion and a non-zero data portion, and
the zero bit mask portion of a second bit stream indicates locations of zero values in the second bit stream.
