Commit graph

123 commits

Author SHA1 Message Date
Ivan Smirnov
d21dd97c10 Update readme with a simple example 2022-01-04 01:52:42 +03:00
Ivan Smirnov
caee8701f5 Update benchmarks with all the latest changes 2022-01-04 01:47:01 +03:00
Ivan Smirnov
c062c6b79b Improve hashing algorithm slightly (see credits) 2022-01-04 01:46:13 +03:00
Ivan Smirnov
52cc56381e Compute hash on 4-byte (extended) pixels always 2022-01-04 01:30:45 +03:00
Ivan Smirnov
88a020b851 Merge StreamDecoder into Decoder 2022-01-04 00:25:05 +03:00
Ivan Smirnov
5371c75a59 (Rearrange code in utils mod a bit) 2022-01-04 00:24:11 +03:00
Ivan Smirnov
b0dca7ba02 Add docstrings for Error variants 2022-01-03 22:10:03 +03:00
Ivan Smirnov
d9bf3db32c Add no_std section to readme 2022-01-03 21:57:54 +03:00
Ivan Smirnov
0736dfa4b4 (Add fuzz coverage to .gitignore) 2022-01-03 21:57:41 +03:00
Ivan Smirnov
328cfac40d Big batch of renames: strip qoi prefix everywhere 2022-01-03 21:40:24 +03:00
Ivan Smirnov
cb10dd3629 Error types cleanup + clippy fixes 2022-01-03 21:18:38 +03:00
Ivan Smirnov
82f07a3e8d Update readme + update bench timings 2022-01-03 20:57:25 +03:00
Ivan Smirnov
718e09e303 Minor tweaks to Pixel::read() 2022-01-03 20:44:05 +03:00
Ivan Smirnov
4633be5c52 Add docstrings for Channels / ColorSpace 2022-01-03 20:43:55 +03:00
Ivan Smirnov
b95022f3fd Update bench timings in the readme 2022-01-03 19:08:38 +03:00
Ivan Smirnov
f9f5acb73a Slight improvement to BytesMut 2022-01-03 18:31:06 +03:00
Ivan Smirnov
4f0bce5fca qoi-bench: only abort on r/t fail if it's qoi-fast 2022-01-03 17:43:28 +03:00
Ivan Smirnov
a9b369e585 In tests, always check for encoded length match 2022-01-03 17:15:18 +03:00
Ivan Smirnov
5952a88e8c Minor fixups to Pixel struct 2022-01-03 17:15:18 +03:00
Ivan Smirnov
5469530c64 Initial attempt at no_std 2022-01-03 17:15:18 +03:00
Ivan Smirnov
e39bec8725 Bug-fix with non-reference encoding 2022-01-03 17:15:18 +03:00
Ivan Smirnov
f3947a2a01 qoi-bench: fail immediately if roundtrip fails 2022-01-03 17:15:18 +03:00
Ivan Smirnov
217d11287d (Update .gitignore) 2022-01-03 17:15:18 +03:00
Ivan Smirnov
df48b77f23 Update CI config (reference enabled) 2022-01-03 17:15:18 +03:00
Ivan Smirnov
c59f6ac686 Update the tests (with reference feature on/off) 2022-01-03 17:15:18 +03:00
Ivan Smirnov
465a5b86a1 Encode runs of 1 as index (+ "reference" feature) 2022-01-03 17:15:18 +03:00
Ivan Smirnov
ab92cf64b6 Disable doctests for the main crate 2022-01-03 17:15:18 +03:00
Ivan Smirnov
7b0044a824 qoi-bench: only report totals if more than one png 2022-01-03 17:15:18 +03:00
Ivan Smirnov
feaac28244 Run tests in opt-level=3 mode 2022-01-03 15:13:56 +03:00
Ivan Smirnov
55977b8981 Minor updates to crate manifests and readme 2022-01-03 15:13:56 +03:00
Ivan Smirnov
5036518108 Change crate edition to "2018" 2022-01-03 15:13:56 +03:00
Ivan Smirnov
45bed0445d Fix a few clippy warnings 2022-01-03 15:13:56 +03:00
Ivan Smirnov
12147521f2 Update the readme with the benchmark timings 2022-01-03 14:25:40 +03:00
Ivan Smirnov
c52ff2bb9b Clean up header struct/mod, add docstrings 2022-01-03 14:25:40 +03:00
Ivan Smirnov
e3184aed01 Derive PartialOrd/Ord for Channels and ColorSpace 2022-01-03 14:25:40 +03:00
Ivan Smirnov
fb8a43fd13 Fix potential decoder panic when checking padding 2022-01-03 14:25:40 +03:00
Ivan Smirnov
e6e156f974 Update fuzz targets 2022-01-03 14:25:40 +03:00
Ivan Smirnov
4e43c8ba01 Add ColorSpace::as_u8() 2022-01-03 14:25:40 +03:00
Ivan Smirnov
bfd947f573 Add a basic README 2022-01-03 14:25:40 +03:00
Ivan Smirnov
74fa9aaef2 Add license files 2022-01-03 14:25:40 +03:00
Ivan Smirnov
b1eb637112 Add GitHub Actions CI config 2022-01-03 14:25:40 +03:00
Ivan Smirnov
71e787f648 Update Cargo.toml 2022-01-03 14:25:40 +03:00
Ivan Smirnov
8cdb46f896 Add qoi format specification pdf to the repo 2022-01-03 14:25:40 +03:00
Ivan Smirnov
ae6d410374 Implement efficient encoding to generic streams 2022-01-03 01:11:16 +03:00
Ivan Smirnov
9d036bc64e Update tests and benches to the new encoder API 2022-01-03 01:11:16 +03:00
Ivan Smirnov
b461af81ac Introduce Channels and finish encoder refactor 2022-01-03 01:11:16 +03:00
Ivan Smirnov
0b76352b22 Use u32::{from_be_bytes,to_be_bytes} builtins 2022-01-03 01:11:16 +03:00
Ivan Smirnov
d763e1d62c Remove magic field from Header 2022-01-03 01:11:16 +03:00
Ivan Smirnov
9289fdd59b Encoding - start the big refactor 2022-01-03 01:11:16 +03:00
Ivan Smirnov
268953033b Decoder - cleanup, move some logic back into Pixel 2022-01-03 01:11:16 +03:00