Commit graph

  • 239a22926c Get rid of most unsafe in decoder (1% speed loss) Ivan Smirnov 2021-12-30 13:22:22 +0300
  • b25b060945 Simplify likely/unlikely/cold helpers Ivan Smirnov 2021-12-30 13:21:54 +0300
  • 0c8d7c64e8 Improve benchmark tool, report totals Ivan Smirnov 2021-12-30 13:19:02 +0300
  • 96a8d559ad (Update .gitignore - ignore bench suite pngs) Ivan Smirnov 2021-12-30 13:17:40 +0300
  • 0fa8ce5fa9 Add reference check tests Ivan Smirnov 2021-12-29 22:41:03 +0300
  • b0467472ae Big rework: everything now matches the latest spec Ivan Smirnov 2021-12-29 22:41:39 +0300
  • 6ed5f13487 Remove canonical mod and remove it from benches Ivan Smirnov 2021-12-29 22:40:41 +0300
  • 24775b1014 (Remove temporary tests from crate root) Ivan Smirnov 2021-12-29 22:39:14 +0300
  • f64f777b57 (Update the upstream qoi submodule) Ivan Smirnov 2021-12-29 20:56:30 +0300
  • 7155c13214 Add assets for tests and reference checks Ivan Smirnov 2021-12-29 20:56:07 +0300
  • d845bb50d5 (Update .gitignore) Ivan Smirnov 2021-12-29 20:55:41 +0300
  • f906d13e90 Update pixel hash function to the latest spec Ivan Smirnov 2021-12-29 16:11:27 +0300
  • 6640bc571a Add unique stream-end marker (7 zeros and one 1) Ivan Smirnov 2021-12-29 16:07:54 +0300
  • 4d0d760f92 Enforce maximum size of 400Mp (QOI_PIXELS_MAX) Ivan Smirnov 2021-12-29 16:00:16 +0300
  • d0e2b70d3d Add initial version of qoi-bench Ivan Smirnov 2021-12-02 16:02:30 +0000
  • 3ec3d34987 Add Header::new() and with_colorspace() Ivan Smirnov 2021-12-02 15:57:57 +0000
  • 02734e4eca Replace Header::SIZE -> encoded_size() Ivan Smirnov 2021-12-02 15:57:03 +0000
  • 0825c0aa3a Fix a few clippy lints Ivan Smirnov 2021-12-02 15:55:56 +0000
  • 784f7952de Remove criterion benches for now Ivan Smirnov 2021-12-02 15:54:41 +0000
  • bfbf032fff Implement Debug manually for ColorSpace Ivan Smirnov 2021-12-01 17:17:12 +0000
  • 0d612fd3c2 Fix: check decode buffer end after the run opcode Ivan Smirnov 2021-12-01 17:13:50 +0000
  • 4067d83829 Mark a few methods as inline in header mod Ivan Smirnov 2021-12-01 17:07:32 +0000
  • 7446a0f171 Add Header::validate(), don't check in qoi_dec_hdr Ivan Smirnov 2021-12-01 17:07:21 +0000
  • fc41914a48 Refactor decoder so it now uses qoi_decode_header Ivan Smirnov 2021-12-01 17:01:41 +0000
  • d9507911f7 Encoding: mark unlikely and inline Ivan Smirnov 2021-12-01 16:57:20 +0000
  • 8f0a78a8c9 Add Header::n_pixels() Ivan Smirnov 2021-12-01 16:04:04 +0000
  • f17d2b6201 Add decode::qoi_decode_header() Ivan Smirnov 2021-12-01 16:01:58 +0000
  • d7c8346e39 Error::BadDecodingDataSize -> InputBufferTooSmall Ivan Smirnov 2021-12-01 16:01:17 +0000
  • d35fa000fa Add a fuzz target for the decoder Ivan Smirnov 2021-12-01 00:05:46 +0000
  • e6fcdf08b2 Update .gitignore in fuzz Ivan Smirnov 2021-12-01 00:05:23 +0000
  • cd6f8df1fa Remove unneeded mut Ivan Smirnov 2021-12-01 00:05:04 +0000
  • 1ad85dc019 Re-export qoi_encode_to_buf / encode_size_required Ivan Smirnov 2021-12-01 00:04:51 +0000
  • 36383a3ea5 Re-export consts module Ivan Smirnov 2021-12-01 00:04:28 +0000
  • 0701c95f3d Add fuzzer for the encoder Ivan Smirnov 2021-11-30 16:21:03 +0000
  • dd2ed70e70 Decoder: check read buffer bounds for safety Ivan Smirnov 2021-11-30 14:31:33 +0000
  • 572194c0f2 Decoder: mark redundant match arm as unreachable Ivan Smirnov 2021-11-30 14:30:55 +0000
  • 09976fb889 Add stable likely/unlikely to utils module Ivan Smirnov 2021-11-30 14:30:13 +0000
  • 1bb6ee118c Add qoi_encode_to_buf() and encode_size_required() Ivan Smirnov 2021-11-30 02:46:04 +0000
  • 439a285920 Add canonical mod with reference i16-diff encode Ivan Smirnov 2021-11-29 23:24:47 +0000
  • b290afbc02 Re-export Header type at the crate root Ivan Smirnov 2021-11-29 22:39:06 +0000
  • 62a659eb03 Change magic type to u32 (like in reference impl) Ivan Smirnov 2021-11-29 22:38:09 +0000
  • f19c0ee641 Remove unused imports from decode module Ivan Smirnov 2021-11-29 22:33:27 +0000
  • fd71a24506 Mark tag masks in consts mod as allow(unused) Ivan Smirnov 2021-11-29 22:32:04 +0000
  • 236f55ed3c Change Header::default() impl so it's a valid one Ivan Smirnov 2021-11-29 22:30:53 +0000
  • 7d0b0a5b62 Change colorspace in Header to ColorSpace type Ivan Smirnov 2021-11-29 22:30:29 +0000
  • 83e75b1b65 Add colorspace support to qoi_encode_to_vec() Ivan Smirnov 2021-11-29 22:26:20 +0000
  • 9ef519164b Add ColorSpace type Ivan Smirnov 2021-11-29 22:23:39 +0000
  • 3dc0d6adab Add mask comments to consts module Ivan Smirnov 2021-11-29 13:58:11 +0000
  • 899270e42e Rework all branching in the decoder Ivan Smirnov 2021-11-29 11:30:09 +0000
  • cbae67b07d No bound checks when indexing during decoding Ivan Smirnov 2021-11-29 04:21:50 +0000
  • 92a750c2e3 Add reference implementation as a submodule Ivan Smirnov 2021-11-29 04:21:09 +0000
  • 1bf84b1946 Ignore target/Cargo.lock in all subfolders Ivan Smirnov 2021-11-28 16:59:07 +0000
  • afe6dd1ab3 Update Cargo.toml Ivan Smirnov 2021-11-28 16:54:16 +0000
  • f8ec8011fc Initial working version (but lots of temp stuff) Ivan Smirnov 2021-11-28 12:36:12 +0000