Resource String Compression and Naming for Fast Runtime Lookup

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing compression technologies are inefficient for compressing short text strings in resource files, such as those used in software applications, due to lack of repetitive patterns and the need for per-string decompression, which affects storage and performance.

Innovation Solution

Implementing similarity compression, map-less encoding, and bit-level compression to reduce the size of resource files, along with an enhanced naming process using hash values for fast string retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If conventional compression technologies are used on resource files, then file size is reduced, but decompression performance is poor because the technologies are designed for repetitive patterns rather than short text strings

Engineering Contradiction:
Improvefile sizeVSAvoiddecompression performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The resource file is divided into individual string entries, each with its own compression context. The compression system segments the decompression process to handle only the specific string needed at runtime rather than decompressing the entire file, improving performance while maintaining compression efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the compression parameters by using context-aware algorithms that adapt to the specific characteristics of resource strings (short, non-repetitive text). The compression ratio and decompression speed parameters are optimized specifically for this data type rather than using generic compression settings.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If resource strings are decompressed on a per-string basis at runtime, then storage efficiency is improved, but lookup time increases because the entire file must be processed to find a specific string

Engineering Contradiction:
Improvestorage efficiencyVSAvoidlookup time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

An index structure is built during the compression phase to pre-calculate and store position information for each resource string. This preliminary action enables fast lookup at runtime by directly accessing the index rather than searching through the compressed data, resolving the contradiction between storage efficiency and lookup speed.

Inventive Principle:
Principle #10Preliminary action

3Speed

If numerical identifiers are used for resource strings, then lookup speed is improved, but maintainability deteriorates because identifiers are difficult to maintain across multiple development platforms

Engineering Contradiction:
Improvelookup speedVSAvoidmaintainability
Core Design Contradiction:
SpeedVSEase of manufacture

Solution Approach 1:

The patent introduces an index structure as an intermediary between the human-readable resource names and the compressed storage format. The index maintains the relationship between meaningful names and their compressed positions, enabling both fast lookup and easy maintenance across platforms without requiring changes to the resource strings themselves.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Ease of manufacture

If resource names are used instead of numerical identifiers, then maintainability is improved, but lookup performance deteriorates due to slower string comparison

Engineering Contradiction:
ImprovemaintainabilityVSAvoidlookup performance
Core Design Contradiction:
Ease of manufactureVSSpeed

Solution Approach 1:

The index structure pre-processes the resource names during compression, storing them in an optimized format that enables fast comparison and searching. This preliminary organization of name data allows the system to maintain human-readable names for ease of use while achieving lookup performance comparable to numerical identifiers through efficient index-based access.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10467001B2Enhanced compression, encoding, and naming for resource strings
Publication Date: 2019.11.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10467001B2 patent drawing
  • US10467001B2 patent drawing
  • US10467001B2 patent drawing

AI summary

Technology is disclosed herein for compressing, encoding, and otherwise reducing the size of resource files. In at least one implementation, similarity compression is employed to reduce the size of a resource file. In another implementation, map-less encoding is employed to reduce the number of bytes used to represent a resource string. Bit-level compression is employed in another implementation to reduce the quantity of bits used to encode each character in a string. In addition, implementations are disclosed related to technology for naming strings and accelerated string location and retrieval.