Crates.io | ljpeg |
lib.rs | ljpeg |
version | 0.1.1 |
source | src |
created_at | 2024-04-24 20:10:45.041619 |
updated_at | 2024-05-08 08:17:25.198949 |
description | Fast, no dependency lossless JPEG decoder and encoder |
homepage | |
repository | https://git.sr.ht/~grego/ljpeg-rust |
max_upload_size | |
id | 1219464 |
size | 117,610 |
Fast, no dependency decoder and encoder of the original lossless JPEG format. A lot of the code is used from dnglab, with modifications for use as a standalone library and some improvements.
Based on the limited testing on the author's machine, the decoder is about 2.5x faster than lj92.c, which is faster than Adobe DNG SDK. This difference is not very important for decoding a single frame, but for real time video playback, it is crucial. It's worth noting that no vectorization or multithreading is used, since the decoding algorithm is very sequencial.
There is probably some room for improvements for the encoder performance, although it is far from slow (and probably faster than lj92).
no_std
supportVirtually everything in this crate is no_std
. The alloc
crate is required for the encoder
and for the decoder to store the Huffman table, but this could potentially be worked around.
The (default) std
feature flag only enables the implementation of std::error::Error
on the error types.