All Projects → liujiaheng → Compression

liujiaheng / Compression

Licence: apache-2.0
Learned image compression

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Compression

Essential Image Optimization
Essential Image Optimization - an eBook
Stars: ✭ 1,950 (+2368.35%)
Mutual labels:  image-compression, compression
imagezero
Fast Lossless Color Image Compression Library
Stars: ✭ 49 (-37.97%)
Mutual labels:  compression, image-compression
Lerc
Limited Error Raster Compression
Stars: ✭ 126 (+59.49%)
Mutual labels:  image-compression, compression
TinyJPG
images jpg or jpeg compressed and watcher fsnotify
Stars: ✭ 73 (-7.59%)
Mutual labels:  compression, image-compression
Crunch
Crunch is a tool for lossy PNG image file optimization. It combines selective bit depth, color type, and color palette reduction with zopfli DEFLATE compression algorithm encoding using the pngquant and zopflipng PNG optimization tools. This approach leads to a significant file size gain relative to lossless approaches at the expense of a relatively modest decrease in image quality (see example images below).
Stars: ✭ 3,074 (+3791.14%)
Mutual labels:  image-compression, compression
Caesium Image Compressor
Caesium is a cross-platform image compression software aimed at helping photographers, bloggers, webmasters, businesses or casual users at storing, sending and sharing digital pictures. Based on libcaesium.
Stars: ✭ 595 (+653.16%)
Mutual labels:  image-compression, compression
Compressor
An android image compression library.
Stars: ✭ 6,745 (+8437.97%)
Mutual labels:  compression, image-compression
libcaesium
The Caesium compression library written in Rust
Stars: ✭ 58 (-26.58%)
Mutual labels:  compression, image-compression
Imager
Automated image compression for efficiently distributing images on the web.
Stars: ✭ 266 (+236.71%)
Mutual labels:  image-compression, compression
Compress Images
Minify size your images. Image compression with extension: jpg/jpeg, svg, png, gif. NodeJs
Stars: ✭ 331 (+318.99%)
Mutual labels:  image-compression, compression
Image Actions
A Github Action that automatically compresses JPEGs, PNGs and WebPs in Pull Requests.
Stars: ✭ 844 (+968.35%)
Mutual labels:  image-compression, compression
Bolt
Fast approximate vector operations
Stars: ✭ 70 (-11.39%)
Mutual labels:  compression
Csharpewah
Compressed bitmaps in C#
Stars: ✭ 59 (-25.32%)
Mutual labels:  compression
Image Resizer
On-the-fly image resizing using Node.js and libvips. Heroku Ready!
Stars: ✭ 59 (-25.32%)
Mutual labels:  image-compression
Jsonschema Key Compression
Compress json-data based on its json-schema while still having valid json
Stars: ✭ 59 (-25.32%)
Mutual labels:  compression
Html Compress Twig
Twig extension for compressing HTML and inline CSS/JS using WyriHaximus/HtmlCompress
Stars: ✭ 72 (-8.86%)
Mutual labels:  compression
Zip
Efficient library for manipulating zip archives
Stars: ✭ 69 (-12.66%)
Mutual labels:  compression
Efrt
neato compression for key-value data
Stars: ✭ 58 (-26.58%)
Mutual labels:  compression
Goofy
Goofy - Realtime DXT1/ETC1 encoder
Stars: ✭ 58 (-26.58%)
Mutual labels:  compression
Jsoncrush
Compress JSON into URL friendly strings
Stars: ✭ 1,071 (+1255.7%)
Mutual labels:  compression

Overview

Pytorch code of our recent work A Unified End-to-End Framework for Efficient Deep Image Compression.

We first release the code for Variational image compression with a scale hyperprior, we will update our code to our full implementaion of our paper.

Content

Prerequisites

You should install the libraries of this repo.

pip install -r requirements.txt

Data Preparation

We need to first prepare the training and validation data. The trainging data is from flicker.com. You can obtain the training data according to description of CompressionData.

The validation data is the popular kodak dataset.

bash data/download_kodak.sh

Training

For high bitrate (4096, 6144, 8192), the out_channel_N is 192 and the out_channel_M is 320 in 'config_high.json'. For low bitrate (256, 512, 1024, 2048), the out_channel_N is 128 and the out_channel_M is 192 in 'config_low.json'.

Details

PSNR experiments.

For high bitrate of 8192, we first train from scratch as follows.

CUDA_VISIBLE_DEVICES=0 python train.py --config examples/example/config_high.json -n baseline_8192 --train flicker_path --val kodak_path

For other high bitrate (4096, 6144), we use the converged model of 8192 as pretrain model and set the learning rate as 1e-5. The training iterations are set as 500000.

The low bitrate (256, 512, 1024, 2048) training process follows the same strategy.

MS-SSIM experiments

You should change the distorsion loss to (1-MS_SSIM), and fine-tune the pretrained model optimized by PSNR to accelerate the training process. You can find more details in our released paper. The training strategy is similar.

If your find our code is helpful for your research, please cite our paper. Besides, this code is only for research.

@article{liu2020unified,
  title={A Unified End-to-End Framework for Efficient Deep Image Compression},
  author={Liu, Jiaheng and Lu, Guo and Hu, Zhihao and Xu, Dong},
  journal={arXiv preprint arXiv:2002.03370},
  year={2020}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].