PULSE enables fast practical image compression on single CPU thread

PULSE: Unlocking Practical Image Compression on Single-Thread CPU

Computer Vision and Pattern Recognition

Summary

Image compression often needs lots of computing power, which can make it slow on regular computers. The authors developed PULSE, a tool that compresses and decompresses images very quickly using very little computing power—just one CPU thread. They used a clever process combining humans and AI to design the tool so it stays fast without losing quality. PULSE can handle high-definition images at speeds that make it practical for everyday devices while keeping quality similar to complex methods.

What this means in practice

  • For mobile app developers: Compress and decompress high-resolution images quickly on mobile devices with limited CPU cores, enabling efficient storage and faster image handling.
  • For embedded systems engineers: Implement low-latency image codecs on resource-constrained hardware such as single-thread CPUs in cameras or IoT devices.

Authors

Zhaoyang Jia, Tianyu Zhang, Zihan Zheng, Wenxuan Xie, Jiahao Li, Bin Li, Houqiang Li, Yan Lu

Abstract

Despite recent progress in learned image compression, existing methods remain computationally expensive on resource-constrained hardware, particularly CPUs. We introduce PULSE, a practical codec that enables (1) low-latency decoding on diverse hardware platforms with an ultra-low-complexity 5.2 kMAC/pixel neural receiver, and (2) efficient bit-exact entropy coding with an integer linear CDF predictor and a meta prior. To recover compression performance under this tight budget, we introduce an agentic evolution process guided by heuristic probes that iteratively improves the architecture through human-LLM collaboration. PULSE decodes a 1080p image in 126 ms on a single CPU thread while achieving compression performance comparable to HM. After perceptual optimization, PULSE competes with larger perceptual codecs like MS-ILLM. Codes are at https://github.com/microsoft/GenCodec/tree/main/PULSE