Integer Sequence Encoding with Bijective Transform and Golomb-Rice Coding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for encoding integer sequences, such as those following distributions other than Laplacian, face challenges in achieving efficient compression due to large memory requirements and high calculation processing for mapping tables, and suffer from reduced compression efficiency at low bit rates with increased distortion.

Innovation Solution

The implementation of an encoder and decoder that utilize an integer transformer for bijective transformations, followed by Golomb-Rice encoding, to assign bits efficiently across integer values, reducing memory and calculation needs while adapting to varying distributions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a Huffman code or arithmetic code is used to encode integer sequences with distributions other than Laplacian, then compression performance is improved, but device complexity and calculation processing increase due to the need for meticulous design of code dictionaries

Engineering Contradiction:
Improvecompression performanceVSAvoidcode configuration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by transforming the input integer sequence through mathematical transformations (such as taking absolute values, applying logarithmic transformations, or other bijective mappings) to convert non-Laplacian distributed data into forms that are more suitable for Golomb-Rice encoding. This allows the system to maintain the simplicity of Golomb-Rice code structure while adapting to different data distributions, thereby improving compression performance without increasing device complexity

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent segments the encoding process into two distinct stages: first, a transformation stage that prepares the input data by applying mathematical transformations to make it suitable for Golomb-Rice encoding; second, the Golomb-Rice encoding stage that compresses the transformed data. This segmentation allows each stage to be optimized independently, maintaining simplicity while achieving better compression for various distributions

Inventive Principle:
Principle #1Segmentation

2Productivity

If mapping tables are used to encode integer sequences with denser distributions, then compression efficiency is improved, but memory requirements and calculation processing increase

Engineering Contradiction:
Improvecompression efficiencyVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent replaces expensive, large-scale mapping tables with a lightweight, computation-based transformation approach. Instead of storing extensive pre-computed mapping tables in memory, the system uses simple mathematical transformations (such as absolute value operations, bit manipulations, or basic arithmetic) that can be executed with minimal memory footprint, achieving comparable compression efficiency without the memory overhead

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Solution Approach 2:

The patent substitutes the mechanical lookup system (mapping tables requiring memory storage and table search operations) with a computational transformation system. Instead of mechanically searching through large mapping tables to find appropriate codes, the system applies deterministic mathematical transformations to directly generate compressed representations, replacing memory-intensive mechanical operations with computation-efficient mathematical operations

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Device complexity

If Golomb-Rice code is used to encode integer sequences, then device complexity is reduced, but compression performance deteriorates when the sequence does not follow Laplacian distribution

Engineering Contradiction:
Improvecode structure simplicityVSAvoidcompression performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent applies preliminary action by performing data transformation on the input integer sequence before applying Golomb-Rice encoding. This preliminary transformation (such as taking absolute values, applying logarithmic mappings, or other bijective transformations) prepares the data to better match the Laplacian distribution assumptions of Golomb-Rice code, thereby improving compression performance while maintaining the simplicity of the Golomb-Rice structure

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamics by making the preprocessing transformation adaptable to different input distributions. The system can select different transformation strategies based on the characteristics of the input data, allowing it to dynamically adjust to various distributions (Gaussian, uniform, skewed, etc.) while maintaining the static simplicity of the core Golomb-Rice encoding mechanism

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12028093B2Encoder, decoder, encoding method, decoding method and program
Publication Date: 2024.07.02 NIPPON TELEGRAPH & TELEPHONE CORP
  • US12028093B2 patent drawing
  • US12028093B2 patent drawing
  • US12028093B2 patent drawing

AI summary

A sequence of integer values is encoded and decoded with a number of bits of a decimal value substantially assigned per sample or/and with a smaller memory amount or calculation processing amount than in the prior art. The encoder receives the sequence of integer values as input and outputs an integer code corresponding to the sequence of integer values. An integer transformer (11) obtains one integer value (transformed integer) through algebraically-representable bijective transformation for each of a plurality of sets of integer values included in the inputted sequence of integer values. An integer encoder (12) encodes the transformed integer to thereby obtain an integer code.