Node-Less Huffman Tree Compression for 16-Bit Character Codes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing techniques for compressing Japanese language text using Huffman trees face challenges due to increased state transition tables and compressed code lengths, making them impractical for implementation, especially with 16-bit character codes, which result in inefficient compression and decompression processes.

Innovation Solution

A computer-readable medium stores a program that generates a 2n-branching Huffman tree and converts it into a 2m-branching node-less Huffman tree, optimizing the compression process by reducing the number of nodes and pointers, thereby improving compression efficiency and reducing memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If Huffman compression is executed with respect to 16-bit codes using existing techniques, then character recognition can be performed, but the quantity of state transition tables increases and the time to generate and size of tables synergistically increase

Engineering Contradiction:
Improvecharacter recognition accuracyVSAvoidquantity of state transition tables
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the Huffman tree into multiple layers (first layer, second layer, third layer, etc.) where each layer handles a specific range of character codes. This segmentation allows the system to process 16-bit codes efficiently by dividing them into high-order and low-order portions, with each layer's state transition table managing only the codes relevant to that layer, thereby reducing the overall quantity of tables needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hierarchical dimension to the Huffman tree structure by organizing nodes into multiple layers. Each layer operates at a different level of the character code hierarchy, with the first layer handling high-order bits and subsequent layers handling low-order bits. This dimensional organization reduces the complexity of state transition tables by distributing the processing load across layers rather than requiring a single comprehensive table.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Measurement precision

If Huffman compression is executed with respect to 16-bit codes using existing techniques, then character recognition can be performed, but the time to generate the state transition tables and the size thereof synergistically increase

Engineering Contradiction:
Improvecharacter recognition accuracyVSAvoidtime to generate state transition tables
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary organization of character codes into layers based on their frequency distributions and code structures before generating the state transition tables. By pre-classifying codes into high-order and low-order portions and organizing them into hierarchical layers, the system reduces the computational time required for table generation, as the structure is already optimized for efficient processing.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If compressed codes of characters whose appearance frequencies are low are used with existing techniques, then all character codes can be represented, but the compressed code length increases to 20 bits or more

Engineering Contradiction:
Improvecharacter code coverageVSAvoidcompressed code length
Core Design Contradiction:
Adaptability or versatilityVSLength of stationary object

Solution Approach 1:

The patent implements a dynamic code length assignment system where the compressed code length varies based on the appearance frequency of character codes. High-frequency characters are assigned shorter codes in the earlier layers, while low-frequency characters are assigned longer codes in subsequent layers. This dynamic approach ensures that all character codes are representable while minimizing the average compressed code length by optimizing for actual usage patterns.

Inventive Principle:
Principle #15Dynamics

4Adaptability or versatility

If the quantity of tables for node-less linear searching is increased two to 20-fold to support 16-bit codes, then all character codes can be searched, but memory usage and processing overhead increase

Engineering Contradiction:
Improvecharacter code coverageVSAvoidquantity of tables
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent implements a nested hierarchical structure where multiple layers of state transition tables are nested within each other. The first layer table handles high-order bits and contains references to second layer tables, which in turn reference third layer tables, and so on. This nested doll structure allows the system to cover all 16-bit character codes while using far fewer tables than a flat structure would require, as each nested layer manages only a portion of the total code space.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS7880648B2Information processing apparatus, information processing method, and computer product
Publication Date: 2011.02.01 FUJITSU LTD
  • US7880648B2 patent drawing
  • US7880648B2 patent drawing
  • US7880648B2 patent drawing

AI summary

A computer-readable recording medium stores therein an information processing program that causes a computer to execute storing an aggregate of layers of nodes respectively having a pointer to an upper node, pointers to a leaf and/or a lower node and branches to lower nodes; obtaining a totaling result of appearance frequencies of character codes described in a file; classifying the character codes by layer, based on appearance probabilities thereof and the totaling result; calculating, based on a quantity of character codes in an ith layer and for the ith layer, a quantity of pointers pointing to leaves, and based on the quantity calculated and for the ith layer, further calculating a number of times nodes are used and a quantity of pointers pointing to lower nodes; generating, based on calculation results, a Huffman tree; and converting the Huffman tree into a node-less Huffman tree and storing the node-less Huffman tree.