Data Compaction - Compression without Decompression

Steffen Görzig
DOI: https://doi.org/10.48550/arXiv.1402.2508
2014-02-11
Abstract:Data compaction is a new approach for lossless and lossy compression of read-only array data. The biggest advantage over existing approaches is the possibility to access compressed data without any decompression. This makes data compaction most suitable for systems that could currently not apply compression techniques due to real-time or memory constraints. This is true for the majority of all computers, i.e. a wide range of embedded systems.
Data Structures and Algorithms
What problem does this paper attempt to address?
The problem that this paper attempts to solve is: **How to access compressed read - only array data without decompression, thereby overcoming the problem that existing compression techniques cannot be applied in embedded systems due to real - time and memory limitations**. ### Problem Background Although existing compression techniques can effectively reduce data storage space or improve data transmission capabilities, they have a common drawback: **Compressed data must be decompressed before use**. The decompression process brings additional computational and memory overheads. These overheads are acceptable on a typical personal computer, but not feasible in many embedded systems for the following reasons: - **Real - time constraints**: For example, certain startup times must be guaranteed. - **Memory limitations**: When only a few kilobytes of memory are available, the additional memory consumption (for decompressing data and the decompression algorithm itself) is too large, and adding additional memory chips will significantly increase production costs. ### Solution Proposed in the Paper To solve the above problems, the paper introduces a new method, **Data Compaction**. The main features of data compaction include: 1. **Access to compressed data without decompression**: This is its greatest advantage, making data compaction particularly suitable for systems where traditional compression techniques cannot be applied due to real - time or memory limitations. 2. **No need to modify the source code**: The compacted data can be accessed directly. 3. **Can be transparently integrated into the compilation process**: The compaction step can be automatically completed during the compilation process without programmer intervention. ### Specific Steps of Data Compaction Data compaction is mainly divided into three steps: 1. **Input conversion**: Convert all input arrays into one - dimensional byte arrays. 2. **Compaction**: Construct a minimum one - dimensional byte array that contains all the converted input data. 3. **Output generation**: Replace the original input arrays with pointers to the compacted data. Through these steps, data compaction can significantly reduce memory usage while maintaining data accessibility, and is suitable for various embedded systems and multi - core application scenarios. ### Summary The paper aims to solve the problem that existing compression techniques cannot be applied in embedded systems due to real - time and memory limitations through data compaction technology, thereby providing an efficient data compression and access method for these systems.