Commit graph

32 commits

Author SHA1 Message Date
ZettaScript 8099e065f3 wip 2022-12-16 22:12:43 +01:00
Ivan Smirnov 7cadd4c03e Encoder fix - always disallow first-run shortcut 2022-01-06 02:50:21 +03:00
Ivan Smirnov d5cfc60013 Fix an edge case bug with non-reference encoding 2022-01-05 02:27:08 +03:00
Ivan Smirnov f3120d5df3 Tons of docstrings + some renames 2022-01-04 02:59:32 +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 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 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 465a5b86a1 Encode runs of 1 as index (+ "reference" feature) 2022-01-03 17:15:18 +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 ae6d410374 Implement efficient encoding to generic streams 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 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 59e67b455a Encoder minor fixups 2022-01-02 17:43:19 +03:00
Ivan Smirnov 2a764a1132 Further encoder improvements 2021-12-31 14:37:42 +03:00
Ivan Smirnov 637ac22a99 (Clippy fixes across the board) 2021-12-31 14:37:42 +03:00
Ivan Smirnov 2dcbdd19c2 Rework ColorSpace to match the latest spec (0 | 1) 2021-12-31 13:38:19 +03:00
Ivan Smirnov 6ce544950d Rework the encoder, replace all unsafe code 2021-12-31 02:01:24 +03:00
Ivan Smirnov b0467472ae Big rework: everything now matches the latest spec 2021-12-30 13:25:52 +03:00
Ivan Smirnov 6640bc571a Add unique stream-end marker (7 zeros and one 1) 2021-12-29 16:07:54 +03:00
Ivan Smirnov 4d0d760f92 Enforce maximum size of 400Mp (QOI_PIXELS_MAX) 2021-12-29 16:00:16 +03:00
Ivan Smirnov 0825c0aa3a Fix a few clippy lints 2021-12-02 15:55:56 +00:00
Ivan Smirnov d9507911f7 Encoding: mark unlikely and inline 2021-12-01 16:57:20 +00:00
Ivan Smirnov 1bb6ee118c Add qoi_encode_to_buf() and encode_size_required() 2021-11-30 02:46:04 +00:00
Ivan Smirnov 439a285920 Add canonical mod with reference i16-diff encode 2021-11-29 23:24:47 +00:00
Ivan Smirnov 7d0b0a5b62 Change colorspace in Header to ColorSpace type 2021-11-29 22:30:29 +00:00
Ivan Smirnov 83e75b1b65 Add colorspace support to qoi_encode_to_vec() 2021-11-29 22:27:17 +00:00
Ivan Smirnov f8ec8011fc Initial working version (but lots of temp stuff) 2021-11-28 16:20:24 +00:00