Binary Object Buffer Encoding Format for Precision Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data formats, such as JSON and Protocol Buffers, are inefficient for encoding and decoding large volumes of data in JavaScript, particularly when dealing with 3D or video data, as they can lose precision for integers larger than 32 bits and are slow to decode repeated data types like strings.

Innovation Solution

A data format using a type-length-value scheme with type codes and a binary format that includes a list of values as a look-up table, allowing for efficient encoding and decoding by reusing identifiers and reducing data size through compression and precise encoding of data types like BigInt integers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If JSON or Protocol Buffers are used for encoding data, then data can be shared between different components, but precision is lost for integers larger than 32 bits and decoding speed is slow

Engineering Contradiction:
Improveinteger precisionVSAvoiddecoding speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent changes the data type parameters from standard 32-bit integers to arbitrary-precision integers (BigInt), allowing representation of integers larger than 32 bits without precision loss. This parameter change enables exact representation of large integers while maintaining encoding efficiency through the custom binary format with type-length-value scheme.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If repeated data types like strings are encoded using traditional formats, then data can be represented, but decoding speed is slow due to repeated processing

Engineering Contradiction:
Improvedecoding speedVSAvoiddecoding time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary action by creating a lookup table during encoding that stores the positions of repeated string values. During decoding, these pre-computed positions are used to quickly retrieve repeated strings without reprocessing them, significantly reducing decoding time for data with repeated patterns.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by storing references to previously encoded string values in the lookup table. Instead of decoding repeated strings multiple times, the system copies references to the original string positions, enabling fast retrieval of repeated data through simple table lookups rather than full decoding operations.

Inventive Principle:
Principle #26Copying

3Measurement precision

If data is encoded in a detailed format to preserve all information, then precision is maintained, but data size increases

Engineering Contradiction:
Improvedata precisionVSAvoiddata size
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent extracts only the necessary information for precise representation. Instead of encoding complete string values repeatedly, it extracts and stores only the positions of strings in the lookup table. This extraction approach maintains full precision of the original data while significantly reducing the quantity of encoded data through reference-based storage.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies asymmetry in its encoding strategy by treating first occurrences of strings differently from repeated occurrences. First occurrences are encoded with full string data, while repeated occurrences are encoded with compact position references. This asymmetric approach optimizes the balance between precision and data size by applying different encoding methods based on occurrence pattern.

Inventive Principle:
Principle #4Asymmetry

Data Source

PatentUS11989501B1Binary object buffers encoding format
Publication Date: 2024.05.21 ZOOX INC
  • US11989501B1 patent drawing
  • US11989501B1 patent drawing
  • US11989501B1 patent drawing

AI summary

A computer-implemented method is provided. The computer-implemented method comprises: determining data to be encoded, the data comprising data elements that each have a corresponding type, length, and value; determining a list of values of data elements having a first type; encoding the list as a first portion of encoded data including an indication of the first type, the length of each value, and the value; encoding the plurality of data elements as a second portion of encoded data, wherein for each data element whose value is included in the list of values, the second portion includes an indication of a position of the value in the list, and wherein for each data element having a second type, the second portion includes an indication of the type, an indication of the length, and an indication of the value; and transmitting the encoded data for storage and/or decoding.