Orange-OpenSource / Cool-Chic

Low-complexity neural image & video codec.
https://orange-opensource.github.io/Cool-Chic/
BSD 3-Clause "New" or "Revised" License
102 stars 6 forks source link
deep-learning image-compression lightweight neural-network pytorch video-compression

Contributors Forks Stargazers Issues BSD-3 License PyTorch


Cool-chic Logo


Explore the docs ยป

What's new in 3.4? ยท Decode some bitstreams ยท Coding performance

Cool-chic (pronounced /kul สƒik/ 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.

#### ๐Ÿ† **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 ๐Ÿ–ผ๏ธ

#

### Latest release: ๐ŸŽ‰ __Cool-chic 3.4: 30% less complex!__ ๐ŸŽ‰

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.

BD-rate of Cool-chic 3.4 vs. [%] Avg. decoder complexity
Cheng ELIC Cool-chic 3.3 C3 HEVC (HM 16) VVC (VTM 19) MAC / pixel CPU Time [ms]
kodak -4.2 % +7.5 % -0.9 % -4.3 % -17.2 % +3.4 % 1303 74
clic20-pro-valid -13.2 % -0.2 % -0.3 % -1.3 % -25.1 % -2.3 %
1357 354
jvet / / -0.2 % / -18.3 % +18.6 % 1249 143


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

Kodak rd results


CLIC20 Pro Valid

CLIC20 rd results


JVET Class B

JVET class B 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