Radix Coding Buffer for Non-Power-of-2 Symbol Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data compression techniques face challenges in efficiently coding data when the number of possible symbols (g) is not a power of 2, as existing methods like Golomb coding and combinatorial coding struggle to achieve optimal compression efficiency.

Innovation Solution

The implementation of a radix coder that uses a buffer to efficiently code symbols with a range of values not limited to powers of 2, by employing a Last In First Out (LIFO) method and variable radix, allowing for adaptive buffer length adjustment based on data statistics.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If Golomb coding or combinatorial coding is used for data compression, then compression can be achieved, but optimal compression efficiency cannot be achieved when the number of symbols (g) is not a power of 2

Engineering Contradiction:
Improvecompression efficiencyVSAvoidhandling of non power-of-2 symbol ranges
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent changes the fundamental parameter of how symbols are encoded by using a buffer-based radix coding system that can accommodate any radix value (not just powers of 2). The buffer stores intermediate coding results and allows the system to handle variable-length codes efficiently, enabling optimal compression for any symbol range including non power-of-2 values.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The buffer acts as an intermediary structure between the input symbols and the final compressed output. It temporarily stores coding intermediates and allows the system to reconcile the mismatch between arbitrary symbol ranges and the binary output stream, enabling efficient compression without being constrained by power-of-2 limitations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If a buffer is used to code symbols with variable radix, then near-optimal compression performance is achieved, but buffer capacity limitations must be managed

Engineering Contradiction:
Improvecompression performanceVSAvoidbuffer capacity
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent implements dynamic buffer management where the buffer size and allocation are adapted based on the coding progress and data characteristics. The system can adjust the effective buffer capacity by varying the radix and managing when to flush buffered data to output, optimizing compression performance while adapting to buffer constraints.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The coding process is segmented into buffer-filled phases and flush phases. The buffer accumulates coding intermediates until it reaches capacity or optimal flush conditions, at which point the accumulated data is processed and output. This segmentation allows the system to achieve near-optimal compression while respecting buffer capacity limitations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7843367B2Data coding buffer for electrical computers and digital data processing systems
Publication Date: 2010.11.30 XYLON LLC
  • US7843367B2 patent drawing
  • US7843367B2 patent drawing
  • US7843367B2 patent drawing

AI summary

A method includes receiving, at a decoding device, first contents of a buffer, where the first contents of the buffer include at least a first data symbol. The first data symbol is coded into the first contents of the buffer based at least in part on a first radix of the first data symbol. The first data symbol is decoded from the first contents of the buffer. Based at least in part on the first radix of the first data symbol, it is determined whether the first contents of the buffer include a second data symbol. The second data symbol is decoded from the first contents of the buffer if the first contents include the second data symbol.