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 now compresses inter frames with two cool-chic modules: one for the motion and one for the residue
- The motion module training is guided through a RAFT optical flow estimator for more accurate motion.
Check-out the release history to see previous versions of Cool-chic.
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!
The Cool-chic page provides comprehensive image rate-distortion results.
BD-rate of Cool-chic 4.0 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 |
Decoding time are obtained on a single CPU core of an an AMD EPYC 7282 16-Core Processor
PSNR is computed in the RGB domain for kodak and CLIC20, in the YUV420 domain for jvet
The Cool-chic page provides comprehensive video rate-distortion results.
Sequence | BD-rate of Cool-chic 4.0.0 against [%] | Decoding complexity | |||
---|---|---|---|---|---|
HEVC (HM 16) | HEVC (x265-medium) | AVC (x264-medium) | MAC / pixel | Frame rate [fps] | |
C-BasketballDrill | +59.6 | +15.2 | -11.5 | 946 | 18.3 |
C-BQMall | +128.7 | +49.3 | +20.6 | 945 | 16.7 |
C-PartyScene | +113.0 | +37.9 | +20.3 | 946 | 17.5 |
C-RaceHorses | +118.7 | +41.0 | +19.3 | 950 | 16.5 |
Average | +105.0 | +35.9 | +12.2 | 947 | 17.3 |
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.
