Resource String Compression for Fast Individual Retrieval

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 resource strings are compressed using traditional compression technologies, then file size is reduced, but decompression performance is degraded because traditional technologies compress entire files and cannot decompress individual strings efficiently

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

Solution Approach 1:

The patent divides the resource file into individual string entries, each with its own compression context. This allows selective decompression of specific strings by their indices rather than decompressing the entire file, directly resolving the contradiction between file size reduction and decompression performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent pre-processes the resource strings during build time to create a compressed format with embedded length information and null-termination markers. This preliminary action enables runtime systems to quickly decompress only the required strings without processing the entire file, maintaining both small file size and high decompression speed.

Inventive Principle:
Principle #10Preliminary action

2Speed

If numerical identifiers are used for resource strings, then look-up speed is improved, but maintainability is degraded because identifiers are difficult to maintain across multiple development platforms

Engineering Contradiction:
Improvelook-up speedVSAvoidmaintainability
Core Design Contradiction:
SpeedVSEase of operation

Solution Approach 1:

The patent introduces an intermediate layer where resource strings are stored with their full text content in the compressed file, and numerical identifiers serve only as indices to retrieve these strings. This intermediary structure maintains fast look-up speed while improving maintainability, as the actual string content can be easily updated across platforms without changing the identifier system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a copy of the resource strings in a compressed format during build time, allowing the runtime system to work with lightweight numerical identifiers for look-up while the actual string data remains stored in the compressed resource file. This copying approach enables fast identification while maintaining ease of updates.

Inventive Principle:
Principle #26Copying

3Ease of operation

If resource strings are stored with full text content, then maintainability is improved, but file size increases reducing the benefit of compression

Engineering Contradiction:
ImprovemaintainabilityVSAvoidfile size
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent changes the parameter of string storage from uncompressed full text to a compressed format that retains the full text content but encodes it more efficiently. The compression algorithm exploits patterns in resource strings (repeated sequences, common prefixes) to reduce file size while maintaining the complete string content for easy maintenance.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent creates a composite storage structure that combines compressed string data with metadata (length information, null-termination markers, index mappings). This composite structure enables both space efficiency through compression and ease of maintenance through preserved full content, resolving the contradiction between file size and maintainability.

Inventive Principle:
Principle #40Composite materials

4Adaptability or versatility

If language localization is supported with multiple character strings per menu label, then versatility is improved, but file size increases significantly

Engineering Contradiction:
Improvelanguage localization supportVSAvoidfile size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent merges multiple language versions of the same resource string into a single compressed file, using the compression algorithm to identify and eliminate redundancies across languages. Common prefixes, suffixes, and patterns in localized strings are compressed efficiently, allowing multi-language support while minimizing file size increase.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent changes the storage parameter from storing each language version as a separate file to storing all language versions in a single compressed file with index-based access. This parameter change enables versatility for language localization while the compression technology reduces the overall file size by exploiting patterns across different language versions.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9886442B2Enhanced compression, encoding, and naming for resource strings
Publication Date: 2018.02.06 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9886442B2 patent drawing
  • US9886442B2 patent drawing
  • US9886442B2 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.