IP Library Granted Patent US 11,868,616
Granted Patent B2
US 11,868,616 · App. 18/083,437 · Granted Jan 9, 2024

System and method for low-distortion compaction of floating-point numbers

Inventors: Joshua Cooper (Columbia, SC); Aliasghar Riahi (Orinda, CA); Mojgan Haddad (Orinda, CA); Ryan Kourosh Riahi (Orinda, CA); Razmin Riahi (Orinda, CA); Charles Yeomans (Orinda, CA)
Assignee: ATOMBEAM TECHNOLOGIES INC.
G06F3/0608G06F3/067G06F3/0623G06F3/0659H03M7/6005H03M7/6011
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,868,616
App. No.
18/083,437
Filed
Dec 16, 2022
Granted
Jan 9, 2024
Kind
B2
Art Unit
2136
USPC
711/154
Abstract

A system and method for low-distortion compaction of floating-point numbers comprising a pre-encoder, a data deconstruction engine, a library manager, a codeword storage, and a data reconstruction engine. A pre-encoder may receive a plurality of data sourcepackets with may contain one or more floating-point numbers and the received data sourcepackets are scanned to identify floating-point numbers and the identified floating-point numbers. Identified floating-point numbers may be pre-encoded into binary string representations which are low-distortion embeddings of real numbers into a Hamming space. The binary string representation may be indexed to indicate it represents a floating-point number before being compacted by a data deconstruction engine and library manager. The pre-encoding of floating-point numbers located within a sourcepacket enables the system to maximize the benefit of the compaction capabilities of the data deconstruction engine.

Claims (39)

1. A system for low-distortion compaction of floating-point numbers, comprising:

a computing device comprising a processor, a memory, and a non-volatile data storage device;

a pre-encoder comprising a first plurality of programming instructions stored in the memory and operable on the processor, wherein the first plurality of programming instructions, when operating on the processor, causes the processor to:

receive a data set for encoding, the data set comprising one or more floating-point numbers;

scan the data set to identify the one or more floating-point numbers;

for each identified floating-point number in the data set:

pre-encode the floating-point number into a binary string representation;

replace the floating-point number with its binary string representation in the data set to create a pre-encoded data set;

create an index and logically link the binary string representation with the index, wherein the index indicates the binary string represents a floating-point number in the pre-encoded data set; and

send the pre-encoded data set to a data deconstruction engine; and

the data deconstruction engine comprising a second plurality of programming instructions stored in the memory and operable on the processor, wherein the second plurality of programming instructions, when operating on the processor, causes the processor to:

receive a pre-encoded data set;

deconstruct the pre-encoded data set into a plurality of sourceblocks; and

compact each of the plurality of sourceblocks by assigning a codeword to a reference code associated with each of the plurality of sourceblocks.

2. The system of claim 1 , wherein the binary string representations are low-distortion embeddings of real numbers into Hamming space.

3. The system of claim 1 , wherein the binary string representation is a fixed-point representation.

4. The system of claim 1 , further comprising a codeword database configured to store a plurality of codewords.

5. The system of claim 1 , further comprising a data reconstruction engine comprising a third plurality of programming instructions stored in the memory and operable on the processor, wherein the third plurality of programming instructions, when operating on the processor, causes the processor to:

receive a plurality sourceblocks;

check whether each of the plurality of sourceblocks has been logically linked to an index, wherein the presence of an index indicates the sourceblock is a binary string representation of a floating-point number; and

divide the sourceblocks that have been logically linked to an index by a fixed power of two in order to transform the sourceblock into its floating-point number form.

6. A method for low-distortion compaction of floating-point numbers, comprising the steps of:

receiving a data set for encoding, the data set comprising one or more floating-point numbers;

scanning the data set to identify the one or more floating-point numbers;

for each identified floating-point number in the data set:

pre-encoding the floating-point number into a binary string representation;

replacing the floating-point number with its binary string representation in the data set to create a pre-encoded data set;

creating an index and logically link the binary string representation with the index, wherein the index indicates the binary string represents a floating-point number in the pre-encoded data set; and

sending the pre-encoded data set to a data deconstruction engine;

receiving a pre-encoded data set;

deconstructing the pre-encoded data set into a plurality of sourceblocks; and

compacting each of the plurality of sourceblocks by assigning a codeword to a reference code associated with each of the plurality of sourceblocks.

7. The method of claim 5 , wherein the binary string representations are low-distortion embeddings of real numbers into Hamming space.

8. The method of claim 5 , wherein the binary string representation is a fixed-point representation.

9. The method of claim 5 , further comprising a codeword database configured to store a plurality of codewords.

10. The method of claim 5 , further comprising the steps of:

receiving a plurality sourceblocks;

checking whether each of the plurality of sourceblocks has been logically linked to an index, wherein the presence of an index indicates the sourceblock is a binary string representation of a floating-point number; and

dividing the sourceblocks that have been logically linked to an index by a fixed power of two in order to transform the sourceblock into its floating-point number form.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2023
From: COOPER, JOSHUA; RIAHI, ALIASGHAR; HADDAD, MOJGAN; RIAHI, RYAN KOUROSH; RIAHI, RAZMIN; YEOMANS, CHARLES
To: ATOMBEAM TECHNOLOGIES INC.
Reel/Frame 063275/0310 →
Continuity (9)
Continuation In Part 17953946 · Sep 27, 2022
Continuation 17727913 · Apr 25, 2022
Continuation 17404699 · Aug 17, 2021
Continuation In Part 16455655 · Jun 27, 2019
Continuation In Part 16200466 · Nov 26, 2018
Continuation In Part 15975741 · May 9, 2018
Provisional Application 63248665 · Sep 27, 2021
Provisional Application 62578824 · Oct 30, 2017
Related Publication 20230106736A1 · Apr 6, 2023