OmniZip: Learning a Unified and Lightweight Lossless Compressor for Multi-Modal Data
Organizations: Shanghai Jiao Tong University · Ant Group
Abstract
Lossless compression is essential for efficient data storage and transmission. Although learning-based lossless compressors achieve strong results, most of them are designed for a single modality, leading to redundant compressor deployments in multi-modal settings. Designing a unified multi-modal compressor is critical yet challenging, as different data types vary largely in format, dimension, and statistics. Multi-modal large language models offer a promising resolution but remain too complex for practical use. Thus, we propose OmniZip, a unified and lightweight lossless compressor for multi-modal data (like image, text, speech, tactile, database, and gene sequence). Built on a lightweight backbone, OmniZip incorporates three key components to enable efficient multi-modal lossless compression: a modality-unified tokenizer that reversibly transforms diverse data into tokens, a modality-routing context learning mechanism that enables flexible multi-modal context modeling, and a modality-routing feedforward design that further enhances the model's nonlinear representation flexibility. A reparameterization training strategy is used to enhance model capacity. OmniZip outperforms or matches other state-of-the-art compressors on multiple modalities, achieving 42%, 57%, 62% and 42%, 53% higher compression efficiency than gzip on CLIC-M, TouchandGo, enwik9, LibriSpeech, and WikiSQL datasets, respectively. It also supports near real-time inference on resource-constrained edge devices, reaching about 1MB/s on MacBook CPUs and iPhone NPUs. Our code is released at https://github.com/adminasmi/OmniZip-CVPR2026.
Figures & tables
| Model | #Params | MACs | bits/Byte | Speed (KB/s) |
| Transformer [ 65 ] | 0.2M | 0.88M | 2.197 | 714 |
| 3.2M | 4.43M | 1.984 | 280 | |
| RWKV-7 [ 54 ] | 0.2M | 0.85M | 1.910 | 2292 |
| 3.2M | 3.68M | 1.658 | 856 |
| Model | Blocks | Embed Dim | #Params | MACs |
| OmniZip-S | 2 | 320 | 4.8M | 3.88M |
| OmniZip-M | 2 | 912 | 38M | 18.2M |
| OmniZip-L | 3 | 1488 | 152M | 56.0M |
| Compressor | #Params | MACs | Speed (KB/s) | Multi Modal | bits/Byte | |||||||||
| Kodak | CLIC-P | CLIC-M | DIV2K | TouchandGo | ObjectFolder | Axial | Coronal | Sagittal | ||||||
| Classical | gzip † [ 52 ] | - | - | 14500 ′ | ✓ | 4.349 | 4.039 | 3.947 | 4.224 | 2.298 | 3.969 | 5.346 | 4.563 | 5.571 |
| bzip2 † [ 59 ] | - | - | 3300 ′ | ✓ | 4.359 | 4.033 | 3.931 | 4.208 | 2.288 | 4.031 | 5.403 | 4.617 | 5.628 | |
| zstd † [ 48 ] | - | - | 11000 ′ | ✓ | 4.350 | 4.042 | 3.952 | 4.229 | 2.263 | 3.966 | 5.343 | 4.560 | 5.568 | |
| PNG † [ 11 ] | - | - | 200 ′ | ✗ | 4.349 | 4.041 | 3.952 | 4.229 | 2.500 | 3.964 | 5.361 | 4.581 | 5.580 | |
| FLIF † [ 62 ] | - | - | 652 ′ | ✗ | 2.903 | 2.792 | 2.497 | 2.914 | 0.808 | 3.765 | 4.860 | 3.999 | 5.160 | |
| Compressor | #Params | MACs | Speed (KB/s) | Multi Modal | bits/Byte | |||||||
| enwik9 | Gutenberg | Spider | WikiSQL | GenoSeq | DNACorpus | LibriSpeech | ||||||
| Classical | gzip † [ 52 ] | - | - | 14500 ′ | ✓ | 2.590 | 3.819 | 2.289 | 1.672 | 2.390 | 2.318 | 6.511 |
| bzip2 † [ 59 ] | - | - | 3300 ′ | ✓ | 2.082 | 3.607 | 2.326 | 1.403 | 2.202 | 2.148 | 5.647 | |
| zstd † [ 48 ] | - | - | 11000 ′ | ✓ | 2.364 | 3.703 | 2.258 | 1.520 | 2.404 | 2.324 | 6.467 | |
| [ 18 ] | - | - | 2000 ′ | ✗ | - | - | - | - | - | - | 4.961 | |
| Learning-based | [ 22 ] | 8B | 7.80G | 20 ‡ | ✓ | 0.722 | 1.030 | 0.770 | 0.645 | 1.889 | 1.808 | 3.616 |
| Unifed Tokenizer | Contextual Routing | Feedforward Routing | Reparam | Multi Modal | #Params | MACs | Speed (KB/s) | bits/Byte | ||||||
| Kodak | TouchandGo | Coronal | enwik9 | Spider | GenoSeq | LibriSpeech | ||||||||
| ✗ | ✗ | ✗ | ✗ | ✗ | 3.2M | 3.68M | 856 | - | - | - | 1.658 | - | - | - |
| ✗ | ✗ | ✗ | ✓ | ✗ | 3.2M | 3.68M | 856 | - | - | - | 1.590 | - | - | - |
| ✓ | ✗ | ✗ | ✓ | ✓ | 3.2M | 3.68M | 856 | 3.383 | 1.453 | 4.545 | 1.660 | 1.662 | 1.984 | 4.365 |
| ✓ | ✗ | ✓ | ✓ | ✓ | 4.0M | 3.73M | 633 | 3.352 | 1.431 | 4.314 | 1.424 | 1.448 | 1.915 | 4.295 |
| ✓ | ✓ | ✗ | ✓ | ✓ | 3.0M | 3.82M | 780 | 3.339 | 1.419 | 4.188 | 1.410 | 1.482 | 1.889 | 4.302 |
| Contextual Routing | #Params | MACs | Speed (KB/s) | bits/Byte | |||||||||
| Receptance | Key | Value | Total | Activated | Kodak | TouchandGo | Coronal | enwik9 | Spider | GenoSeq | LibriSpeech | ||
| ✓ | ✗ | ✗ | 4.8M | 2.7M | 3.88M | 500 | 3.315 | 1.372 | 4.224 | 1.311 | 1.324 | 1.795 | 4.281 |
| ✗ | ✓ | ✗ | 4.8M | 2.7M | 3.88M | 500 | 3.614 | 1.533 | 4.398 | 1.388 | 1.470 | 1.862 | 4.391 |
| ✗ | ✗ | ✓ | 4.8M | 2.7M | 3.88M | 500 | 3.307 | 1.338 | 4.179 | 1.370 | 1.320 | 1.868 | 4.155 |
| ✓ | ✓ | ✗ | 5.4M | 3.0M | 4.02M | 436 | 3.317 | 1.352 | 4.080 | 1.292 | 1.361 | 1.860 | 4.280 |
| ✓ | ✗ | ✓ | 5.4M | 3.0M | 4.02M | 436 | 3.313 | 1.360 | 4.140 | 1.297 | 1.309 | 1.813 | 4.178 |
| Blocks | top- | Experts | Hidden Factor | #Params | MACs | Speed (KB/s) | bits/Byte | |||||||
| Total | Activated | Kodak | TouchandGo | Coronal | enwik9 | Spider | GenoSeq | LibriSpeech | ||||||
| 1 | 1 | 4 | 3.6M | 2.2M | 3.65M | 594 | 3.436 | 1.150 | 4.267 | 1.391 | 1.511 | 1.878 | 4.336 | |
| 1 | 2 | 4 | 3.6M | 2.5M | 3.85M | 570 | 3.358 | 1.420 | 4.230 | 1.380 | 1.344 | 1.896 | 4.307 | |
| 2 | 2 | 4 | 4.8M | 2.7M | 3.88M | 500 | 3.307 | 1.338 | 4.179 | 1.370 | 1.320 | 1.868 | 4.155 | |
| 2 | 2 | 3 | 4.0M | 2.7M | 3.88M | 500 | 3.355 | 1.424 | 4.154 | 1.369 | 1.410 | 1.882 | 4.300 | |
| 2 | 2 | 5 | 5.2M | 2.7M | 3.88M | 500 | 3.232 | 1.416 | 4.190 | 1.358 | 1.352 | 1.855 | 4.206 | |
| Dataset | Type | Train | Test | Description |
| Kodak [ 21 ] | image | ✗ | ✓ | 24 film-scanned photos ( ) with balanced natural and synthetic scenes. We use it for testing. |
| CLIC-P [ 17 ] | image | ✗ | ✓ | 41 high-resolution DSLR images (mostly 2K) with rich color and texture diversity. We use it for testing. |
| CLIC-M [ 17 ] | image | ✗ | ✓ | 61 smartphone photos (mostly 2K) containing real-world noise and artifacts. We use it for testing. |
| DIV2K [ 2 ] | image | ✓ | ✓ | 900 2K-resolution images with a large diversity of contents. We follow the official split (800 train, 100 test). |
| Axial [ 10 ] | medical | ✓ | ✓ | 2D knee MRI slices ( ) in the axial plane. We follow the official split ( 38K train, 4.1K test). |
| Coronal [ 10 ] | medical | ✓ | ✓ | 2D knee MRI slices ( ) in the coronal plane. We follow the official split ( 33K train, 3.5K test). |
| Compressor | #Params | Multi Modal | Adjusted bits/Byte | ||||||||
| Kodak | CLIC-P | CLIC-M | DIV2K | TouchandGo | ObjectFolder | Axial | Coronal | Sagittal | |||
| [ 22 ] | 8B | ✓ | 8490321 | 971320 | 553618 | 291465 | 322642 | 214197 | 693352 | 750368 | 970961 |
| [ 22 ] | 7B | ✓ | 7429031 | 849906 | 484417 | 255032 | 282312 | 187423 | 606683 | 656573 | 823341 |
| DLPR ∗† [ 5 ] | 22.3M | ✗ | 23670 | 2710 | 1545 | 815 | 900 | 601 | - | - | - |
| L3C ∗† [ 46 ] | 5M | ✗ | 5310 | 610 | 349 | 185 | 203 | 138 | 439 | 473 | 594 |
| P2LLM [ 13 ] | 8B | ✗ | 8490319 | 971318 | 553616 | 291463 | - | - | - | - | - |
| Compressor | #Params | Multi Modal | Adjusted bits/Byte | ||||||
| enwik9 | Gutenberg | Spider | WikiSQL | GenoSeq | DNACorpus | LibriSpeech | |||
| [ 22 ] | 8B | ✓ | 129 | 362459 | 2125 | 10835 | 500 | 1138 | 212 |
| [ 22 ] | 7B | ✓ | 113 | 317152 | 1859 | 9480 | 437 | 996 | 186 |
| tszip [ 9 ] | 169 | ✗ | 4 | 7658 | 46 | 230 | 13 | 26 | - |
| L3TC [ 71 ] | 12 | ✗ | 2 | 546 | 6 | 18 | 3 | 4 | - |
| OmniZip-S | 4.8M | ✓ | 1 | 219 | 3 | 8 | 2 | 3 | 4 |