Awesome
<!-- PROJECT LOGO --> <br /> <div align="center"> <picture> <!-- User prefers light mode: --> <source srcset="docs/source/assets/coolchic-logo-light.png" media="(prefers-color-scheme: light)" alt="Cool-chic Logo" height="200"/> <!-- User prefers dark mode: --> <source srcset="docs/source/assets/coolchic-logo-dark.png" media="(prefers-color-scheme: dark)" alt="Cool-chic Logo" height="200"/> <!-- User has no color preference: --> <img src="docs/source/assets/coolchic-logo-dark.png" alt="Cool-chic Logo" height="200"/> </picture> <p align="center"> <!-- Low-complexity neural image codec based on overfitting. --> <br /> <a href="https://orange-opensource.github.io/Cool-Chic/"><strong>Explore the docs ยป</strong></a> <br /> <br /> <a href="https://orange-opensource.github.io/Cool-Chic/getting_started/new_stuff.html">What's new in 3.4?</a> ยท <a href="https://orange-opensource.github.io/Cool-Chic/getting_started/results.html">Decode some bitstreams</a> ยท <a href="https://orange-opensource.github.io/Cool-Chic/getting_started/results.html#clic20-pro-valid">Coding performance</a> </p> </div> <!-- # What's Cool-chic? -->Cool-chic (pronounced <span class="ipa">/kul สik/</span> as in French ๐ฅ๐ง๐ท) is a low-complexity neural image codec based on overfitting. It offers image coding performance competitive with H.266/VVC for 1000 multiplications per decoded pixel.
<div align="center">๐ Coding performance: Cool-chic compresses images as well as H.266/VVC ๐
๐ Fast CPU-only decoder: Decode a 1280x720 image in 100 ms on CPU with our decoder written in C ๐
๐ฅ Fixed-point decoder: Fixed-point arithmetic at the decoder for bit-exact results on different hardwares ๐ฅ
๐ผ๏ธ I/O format: Encode PNG, PPM and YUV 420 & 444 files with a bitdepth of 8 to 16 bits ๐ผ๏ธ
</div> <div align="center">Latest release: ๐ Cool-chic 3.4: 30% less complex! ๐
</div>- New and improved latent upsampling module
- Leverage symmetric and separable convolution kernels to reduce complexity & parameters count
- Learn two filters per upsampling step instead of one for all upsampling steps
- 1% to 5% rate reduction for the same image quality
- 30% complexity reduction using a smaller Auto-Regressive Module
- From 2000 MAC / decoded pixel to 1300 MAC / decoded pixel
- 10% faster decoding speed
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
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!
Performance
The Cool-chic page provides comprehensive rate-distortion results and compressed bitstreams allowing
to reproduce the results inside the results/
directory.
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
<div style="text-align: center;"> <img src="./docs/source/assets/kodak/concat_img.png" alt="Kodak rd results" width="90%" style="centered"/> </div> <br/>CLIC20 Pro Valid
<div style="text-align: center;"> <img src="./docs/source/assets/clic20-pro-valid/concat_img.png" alt="CLIC20 rd results" width="90%" style="centered"/> </div> <br/>JVET Class B
<div style="text-align: center;"> <img src="./docs/source/assets/jvet/concat_img_classB.png" alt="JVET class B rd results" width="90%" style="centered"/> </div> <br/> </br>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.
<!-- MARKDOWN LINKS & IMAGES --> <!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --> <div align="center"> </br> <picture> <!-- User has no color preference: --> <img src="docs/source/assets/logo_orange.png" alt="Cool-chic Logo" height="150"/> </picture> </div>