# Cool-Chic
**Repository Path**: housz77/Cool-Chic
## Basic Information
- **Project Name**: Cool-Chic
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: BSD-3-Clause
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-12-27
- **Last Updated**: 2024-12-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![BSD-3 License][license-shield]][license-url]
[![PyTorch][pytorch-shield]][pytorch-url]
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!__ ๐
- 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](https://github.com/Orange-OpenSource/Cool-Chic/releases) to see previous versions of Cool-chic.
# Setup
More details are available on the [Cool-chic page](https://orange-opensource.github.io/Cool-Chic/getting_started/quickstart.html)
```bash
# 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](https://orange-opensource.github.io/Cool-Chic/getting_started/results.html) 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
### CLIC20 Pro Valid
### JVET Class B
# 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.](https://arxiv.org/abs/2312.02753)
[contributors-shield]: https://img.shields.io/github/contributors/Orange-OpenSource/Cool-Chic.svg?style=for-the-badge
[contributors-url]: https://github.com/Orange-OpenSource/Cool-Chic/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/Orange-OpenSource/Cool-Chic.svg?style=for-the-badge
[forks-url]: https://github.com/Orange-OpenSource/Cool-Chic/network/members
[stars-shield]: https://img.shields.io/github/stars/Orange-OpenSource/Cool-Chic.svg?style=for-the-badge
[stars-url]: https://github.com/Orange-OpenSource/Cool-Chic/stargazers
[issues-shield]: https://img.shields.io/github/issues/Orange-OpenSource/Cool-Chic.svg?style=for-the-badge
[issues-url]: https://github.com/Orange-OpenSource/Cool-Chic/issues
[license-shield]: https://img.shields.io/github/license/Orange-OpenSource/Cool-Chic.svg?style=for-the-badge
[license-url]: https://github.com/Orange-OpenSource/Cool-Chic/blob/master/LICENSE.txt
[pytorch-shield]: https://img.shields.io/badge/PyTorch-0769AD?style=for-the-badge&logo=pytorch&logoColor=white
[pytorch-url]: https://pytorch.org/
#