Skip to content

Orange-OpenSource/Cool-Chic

Repository files navigation

Forks Stargazers Issues BSD-3 License PyTorch


Cool-chic (pronounced /kul ʃik/ as in French 🥖🧀🍷) is a low-complexity neural image codec based on overfitting.

  • 🏆 Coding performance: Cool-chic compresses images as well as H.266/VVC

  • 🪶 Lightweight decoder: Cool-chic decoder performs only 1000 multiplications per decoded pixel

  • 🚀 Fast CPU-only decoder: Decode a 1280x720 image in 100 ms on CPU with our decoder written in C

  • 🖼️ I/O format: Encode PNG, PPM and YUV 420 & 444 files with a bitdepth of 8 to 16 bits

🔮 Cool-chic 4.1.0: Revisiting temporal prediction! 🔮

Cool-chic 4.1 focuses on video coding, improving particularly the temporal prediction through better and lighter sub-pixel motion compensation. This release is linked to the following paper: Efficient Sub-pixel Motion Compensation in Learned Video Codecs, Ladune et al..

  • Replace 2-tap bilinear filtering with sinc-based 8-tap filters
  • Decode motion fields at 1/4 of the frame resolution for lighter decoding complexity
  • Improved video compression performance: -23.6% rate versus Cool-chic 4.0
  • Decrease motion-related complexity by 45%, from 391 to 214 MAC / decoded pixel

Check-out the release history to see previous versions of Cool-chic.

Setup

More details are available on the Cool-chic page

# We need to get these packages to compile the C API and bind it to python.
sudo add-apt-repository -y ppa:deadsnakes/ppa && sudo apt update
sudo apt install -y build-essential python3.10-dev pip g++
git clone https://github.com/Orange-OpenSource/Cool-Chic.git && cd Cool-Chic

# Install create and activate virtual env
python3.10 -m pip install virtualenv
python3.10 -m virtualenv venv && source venv/bin/activate

# Install Cool-chic
pip install -e .

# Sanity check
python -m test.sanity_check

You're good to go!

Image compression performance

The Cool-chic page provides comprehensive image rate-distortion results.

BD-rate of Cool-chic 4.1 vs. [%] Avg. decoder complexity
Cheng ELIC C3 HEVC (HM 16) VVC (VTM 19) MAC / pixel CPU Time [ms]
kodak -4.2 % +7.5 % -4.3 % -17.2 % +3.4 % 1303 74
clic20-pro-valid -13.2 % -0.2 % -1.3 % -25.1 % -2.3 %
1357 354
jvet (BCDEF) / / / -18.3 % +18.6 % 1249 143
jvet (class B) / / / -9.9 % +20.7 % 1300 282
jvet (class C) / / / -16.1 % +9.2 % 1289 69
jvet (class D) / / / -12.4 % +9.6 % 948 18
jvet (class E) / / / -6.2 % +27.8 % 1347 125
jvet (class F) / / / -31.8 % +20.6 % 1249 182

Compression performance and decoding time

CLIC20 Pro Valid

CLIC20 rd results


Video compression performance

The Cool-chic page provides comprehensive video rate-distortion results.

Random access results (intra period 32)

Sequence BD-rate of Cool-chic 4.1.0 against [%] Decoding complexity
HEVC (HM 16) HEVC (x265-medium) AVC (x264-medium) Cool-chic 4.0 MAC / pixel Frame rate [fps]
C-BasketballDrill +30.8 -5.2 -29.5 -17.5 639 13.3
C-BQMall +77.1 +16.6 -6.0 -21.1 639 13.2
C-PartyScene +28.3 -15.1 -39.2 -39.1 639 12.9
C-RaceHorses +79.6 +17.4 +8.6 -16.8 639 12.1
Average +54.0 +3.4 -14.0 -23.6 639 12.9

C-PartyScene

PartyScene rd results

Thanks

Special thanks go to Hyunjik Kim, Matthias Bauer, Lucas Theis, Jonathan Richard Schwarz and Emilien Dupont for their great work enhancing Cool-chic: C3: High-performance and low-complexity neural compression from a single image or video, Kim et al.


Cool-chic Logo