PULSE is an asymmetric, variable-rate neural image codec for practical compression on resource-constrained hardware. It combines ultra-low-complexity decoding, bit-exact entropy coding, and MSE or perceptual optimization.
Model Card
By Zhaoyang Jia, published under mit, revision 26efab7d7e72.
PULSE is an asymmetric, variable-rate neural image codec for practical compression on resource-constrained hardware. It combines ultra-low-complexity decoding, bit-exact entropy coding, and MSE or perceptual optimization. provide deterministic entropy transport, with a content-adaptive Meta Prior. levels each, including face/text-aware perceptual fine-tuning. decompression, and optimized CPU, H100 GPU, and mobile NPU deployment tools. Each bundle contains config.json, model.pt and entropycontrolint.pt. Eight QPs (0–7) are supported. Keep the matching files together. manifest.json and SHA256SUMS record all inference-file checksums. Install the PULSE code following its installation guide…
Read Zhaoyang Jia's full model card
PULSE: Unlocking Practical Image Compression on Single-Thread CPU
PULSE is an asymmetric, variable-rate neural image codec for practical compression on resource-constrained hardware. It combines ultra-low-complexity decoding, bit-exact entropy coding, and MSE or perceptual optimization.
Key Advantages
- Single-thread CPU decoding: The base receiver requires just 5.2 kMAC/pixel.
- Cross-platform entropy coding: Integer Linear CDF prediction and CPU rANS provide deterministic entropy transport, with a content-adaptive Meta Prior.
- Flexible rate and quality: Four MSE/perceptual models support eight quality levels each, including face/text-aware perceptual fine-tuning.
- Complete codec tools: Training, independent
.pulsecompression and decompression, and optimized CPU, H100 GPU, and mobile NPU deployment tools.
Paper | Training | Deployment
Available Models
| Bundle | Objective | Receiver |
|---|---|---|
pulse-s-mse |
MSE | ~2.7 kMAC/pixel |
pulse-mse |
MSE | ~5.2 kMAC/pixel |
pulse-perceptual |
Perceptual / ROI | ~5.2 kMAC/pixel |
pulse-l-perceptual |
Perceptual / ROI | ~20 kMAC/pixel |
Each bundle contains config.json, model.pt and entropy_control_int.pt.
Eight QPs (0–7) are supported. Keep the matching files together.
manifest.json and SHA256SUMS record all inference-file checksums.
Use
Install the PULSE code
following its installation guide, then run from GenCodec/PULSE:
python download_models.py --repo zhaoyangjia/PULSE --models pulse-mse
python compress.py --model checkpoints/pulse-mse \
--input image.png --output image.pulse --qp 3
python decompress.py --model checkpoints/pulse-mse \
--input image.pulse --output reconstruction.png
Citation
@article{jia2026pulse,
title = {{PULSE}: Unlocking Practical Image Compression on Single-Thread {CPU}},
author = {Jia, Zhaoyang and Zhang, Tianyu and Zheng, Zihan and Xie, Wenxuan and Li, Jiahao and Li, Bin and Li, Houqiang and Lu, Yan},
journal = {arXiv preprint arXiv:2609.18602},
year = {2026},
url = {https://arxiv.org/abs/2609.18602}
}
Identity and Version
- Repository
- zhaoyangjia/PULSE
- Publisher
- Zhaoyang Jia
- Task
- Not stated by the source
- Modality
- Other
- Library
- pytorch
- Parameters
- Not stated by the source
- Languages
- Not stated by the source
- Revision
- 26efab7d7e723929550542540294063a4c5b5aec
- First published
- 2026-09-14
- Last updated
- 2026-09-18
Files and Weights
18 files, 373.7 MB in total. The weights are 8 files totalling 373.7 MB in pt.
Every file
| File | Type | Size | SHA-256 |
|---|---|---|---|
| pulse-l-perceptual/entropy_control_int.pt | Weights | 44.2 MB | 1be144ba1adc |
| pulse-l-perceptual/model.pt | Weights | 77.2 MB | 88025ccb1c4d |
| pulse-mse/entropy_control_int.pt | Weights | 29.5 MB | 3bf9a6137cd7 |
| pulse-mse/model.pt | Weights | 58.9 MB | c6026ee7eb1e |
| pulse-perceptual/entropy_control_int.pt | Weights | 29.6 MB | a8c0e717f079 |
| pulse-perceptual/model.pt | Weights | 58.9 MB | 13fb7396d773 |
| pulse-s-mse/entropy_control_int.pt | Weights | 24.6 MB | b09984c92f33 |
| pulse-s-mse/model.pt | Weights | 50.7 MB | 97069db3c30b |
| manifest.json | Configuration | 3.9 KB | — |
| pulse-l-perceptual/config.json | Configuration | 434 B | — |
| pulse-mse/config.json | Configuration | 420 B | — |
| pulse-perceptual/config.json | Configuration | 434 B | — |
| pulse-s-mse/config.json | Configuration | 406 B | — |
| LICENSE | Documentation | 1.1 KB | — |
| README.md | Documentation | 2.9 KB | — |
| SHA256SUMS | Other | 1.1 KB | — |
| .gitattributes | Repository | 41 B | — |
| .gitignore | Repository | 27 B | — |
License and Download
- License
- mit
- Access
- Open weights, no gate
- Download size
- 373.7 MB
Released by Zhaoyang Jia through its official repository on Hugging Face. Read the license.
Built From
- Described by arXiv:2609.18602
Memory Requirements
| Precision | Weights in memory |
|---|---|
| As published | 373.7 MB |
Weights only, from the published parameter count; the key-value cache and runtime add to this.
Questions About PULSE
Can I use PULSE commercially?
Yes. PULSE is released under MIT License. The MIT License is a short permissive license. It permits commercial use, modification and redistribution, provided the copyright notice and permission notice are included.