All Projects → Cyan4973 → Finitestateentropy

Cyan4973 / Finitestateentropy

Licence: bsd-2-clause
New generation entropy codecs : Finite State Entropy and Huff0

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Finitestateentropy

C Blosc
A blocking, shuffling and loss-less compression library that can be faster than `memcpy()`.
Stars: ✭ 742 (-21.81%)
Mutual labels:  compression
Blosc.jl
Blosc compression for the Julia language
Stars: ✭ 24 (-97.47%)
Mutual labels:  compression
Srec
PyTorch Implementation of "Lossless Image Compression through Super-Resolution"
Stars: ✭ 868 (-8.54%)
Mutual labels:  compression
Flyimg
Dockerized PHP7 application runs as a Microservice to resize and crop images on the fly. Get optimised images with MozJPEG, WebP or PNG using ImageMagick. Includes face detection, cropping, face blurring, image rotation and many other options. Abstract storage based on FlySystem in order to store images on any provider (local, AWS S3...).
Stars: ✭ 762 (-19.7%)
Mutual labels:  compression
Peazip
Free Zip / Unzip software and Rar file extractor. Cross-platform file and archive manager. Features volume spanning, compression, authenticated encryption. Supports 7Z, 7-Zip sfx, ACE, ARJ, Brotli, BZ2, CAB, CHM, CPIO, DEB, GZ, ISO, JAR, LHA/LZH, NSIS, OOo, PAQ/LPAQ, PEA, QUAD, RAR, RPM, split, TAR, Z, ZIP, ZIPX, Zstandard.
Stars: ✭ 827 (-12.86%)
Mutual labels:  compression
Scn
Scale-wise Convolution for Image Restoration
Stars: ✭ 26 (-97.26%)
Mutual labels:  compression
Acl
Animation Compression Library
Stars: ✭ 716 (-24.55%)
Mutual labels:  compression
Bcnencoder.net
Cross-platform texture encoding libary for .NET. With support for BC1-3/DXT, BC4-5/RGTC and BC7/BPTC compression. Outputs files in ktx or dds formats.
Stars: ✭ 28 (-97.05%)
Mutual labels:  compression
Borgmatic
Simple, configuration-driven backup software for servers and workstations
Stars: ✭ 902 (-4.95%)
Mutual labels:  compression
Lib
single header libraries for C/C++
Stars: ✭ 866 (-8.75%)
Mutual labels:  compression
Compressonator
Tool suite for Texture and 3D Model Compression, Optimization and Analysis using CPUs, GPUs and APUs
Stars: ✭ 785 (-17.28%)
Mutual labels:  compression
Zlib Ng
zlib replacement with optimizations for "next generation" systems.
Stars: ✭ 807 (-14.96%)
Mutual labels:  compression
Nippy
High-performance serialization library for Clojure
Stars: ✭ 838 (-11.7%)
Mutual labels:  compression
Minizip Ng
Fork of the popular zip manipulation library found in the zlib distribution.
Stars: ✭ 750 (-20.97%)
Mutual labels:  compression
Drv3 Tools
(Not actively maintained, use DRV3-Sharp) Tools for extracting and re-injecting files for Danganronpa V3 for PC.
Stars: ✭ 13 (-98.63%)
Mutual labels:  compression
Dandere2x
Dandere2x - Fast Waifu2x Video Upscaling.
Stars: ✭ 723 (-23.81%)
Mutual labels:  compression
Compressed Vec
SIMD Floating point and integer compressed vector library
Stars: ✭ 25 (-97.37%)
Mutual labels:  compression
Imgsquash
Simple image compression full website code written in node, react and next.js framework. Easy to deploy as a microservice.
Stars: ✭ 948 (-0.11%)
Mutual labels:  compression
Iscompress
Inno Setup zlib, bzlib and lzma compression source code - see issrc repository for lzma2 compression source code.
Stars: ✭ 21 (-97.79%)
Mutual labels:  compression
Image Actions
A Github Action that automatically compresses JPEGs, PNGs and WebPs in Pull Requests.
Stars: ✭ 844 (-11.06%)
Mutual labels:  compression

New Generation Entropy coders

This library proposes two high speed entropy coders :

Huff0, a Huffman codec designed for modern CPU, featuring OoO (Out of Order) operations on multiple ALU (Arithmetic Logic Unit), achieving extremely fast compression and decompression speeds.

FSE is a new kind of Entropy encoder, based on ANS theory, from Jarek Duda, achieving precise compression accuracy (like Arithmetic coding) at much higher speeds.

Branch Status
master Build Status
dev Build Status

Benchmarks

Benchmarks are run on an Intel Core i7-5600U, with Linux Mint 64-bits. Source code is compiled using GCC 4.8.4, 64-bits mode. Test files are generated using the provided probagen program. Benchmark breaks sample files into blocks of 32 KB. Huff0 and FSE are compared to zlibh, the huffman encoder within zlib, provided by Frederic Kayser.

File Codec Ratio Compression Decompression
Proba80
Huff0 6.38 600 MB/s 1350 MB/s
FSE 8.84 325 MB/s 440 MB/s
zlibh 6.38 265 MB/s 300 MB/s
Proba14
Huff0 1.90 595 MB/s 860 MB/s
FSE 1.91 330 MB/s 460 MB/s
zlibh 1.90 255 MB/s 250 MB/s
Proba02
Huff0 1.13 525 MB/s 555 MB/s
FSE 1.13 325 MB/s 445 MB/s
zlibh 1.13 180 MB/s 210 MB/s

By design, Huffman can't break the "1 bit per symbol" limit, hence loses efficiency on squeezed distributions, such as Proba80. FSE is free of such limit, and its compression efficiency remains close to Shannon limit in all circumstances. However, this accuracy is not always necessary, and less compressible distributions show little difference with Huffman. On its side, Huff0 delivers in the form of a massive speed advantage.

Branch Policy

External contributions are welcomed and encouraged. The "master" branch is only meant to host stable releases. The "dev" branch is the one where all contributions are merged. If you want to propose a patch, please commit into "dev" branch or dedicated feature branch. Direct commit to "master" are not permitted.

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].