- Python 55.3%
- C++ 43.9%
- C 0.5%
- CMake 0.3%
| .github/workflows | ||
| cfg | ||
| coolchic | ||
| docs | ||
| results | ||
| samples | ||
| test | ||
| toolbox/toolbox | ||
| .gitignore | ||
| CONTRIBUTORS.md | ||
| LICENSE.txt | ||
| LICENSE_CABAC.txt | ||
| pyproject.toml | ||
| README.md | ||
| setup.py | ||
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.0.0: Video is back! 🎥
- 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.
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.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 |
Compression performance and decoding time
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
Kodak
CLIC20 Pro Valid
JVET Class B
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.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 |
C-BasketballDrill
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.