Sergey "Shnatsel" Davidoff
eaf9cc1d6c
Merge branch 'main' into better-docs
2026-03-06 11:02:09 +00:00
Sergey "Shnatsel" Davidoff
34191fa9ca
Merge branch 'main' into derive-debug
2026-03-06 10:55:44 +00:00
Sergey "Shnatsel" Davidoff
b0bd33dbe4
Remove equality from rational types; can be implemented later via cross-multiplication
2026-03-06 10:54:37 +00:00
Sergey "Shnatsel" Davidoff
2ca2427c75
cargo fmt
2026-03-06 10:51:23 +00:00
Aurelia Molzer
e8be8656f2
Merge pull request #353 from Shnatsel/non-exhaustive-compression
...
Make Compression enum non-exhaustive
2026-03-06 10:45:28 +00:00
Sergey "Shnatsel" Davidoff
ea949032a2
cargo clippy --fix
2026-03-06 10:43:54 +00:00
Sergey "Shnatsel" Davidoff
87007d85a0
Derive Debug on Compression enum
2026-03-06 10:41:20 +00:00
Sergey "Shnatsel" Davidoff
2119bff354
More derives on TIFF value structs
2026-03-06 10:36:12 +00:00
Sergey "Shnatsel" Davidoff
c62a69ec9d
Expand predictor docs
2026-03-06 10:07:06 +00:00
Sergey "Shnatsel" Davidoff
79a791b49a
Clarify predictor docs
2026-03-06 10:02:24 +00:00
Sergey "Shnatsel" Davidoff
e1e9f36c5a
Make Compression enum non-exhaustive
2026-03-06 09:49:10 +00:00
Aurelia Molzer
0ad653433a
Merge pull request #352 from image-rs/iterate-over-raw-tiff-or-exif
...
Open a Tiff without interpreting the first directory
2026-03-06 08:34:19 +00:00
A. Molzer
bf79af8de4
Add Decoder::open, deprecate new
2026-03-06 09:31:23 +01:00
Aurelia Molzer
54dddc4943
Merge pull request #347 from image-rs/iterate-over-raw-tiff-or-exif
...
Enable iteration over raw, malformed tiff or exif
2026-03-06 07:31:13 +00:00
A. Molzer
be9b3a04b9
Expand documentation with TiffHeader
2026-03-06 06:05:32 +01:00
A. Molzer
08f1b25fac
Drafting release notes
2026-03-06 05:35:45 +01:00
A. Molzer
c7b97519a0
Error guarantee on decoder IFD iteration
2026-03-06 04:42:02 +01:00
A. Molzer
e093e15bbe
Remove redundant next_ifd attribute
2026-03-06 03:44:08 +01:00
A. Molzer
647e9b4a81
Add TiffHeader to open a file without seeking
2026-03-06 02:59:45 +01:00
Aurelia Molzer
31c49ea6ef
Merge pull request #351 from Shnatsel/semver-breaking-deflate-level
...
Implement DEFLATE compression level control properly, with a semver break
2026-03-05 20:12:27 +00:00
Sergey "Shnatsel" Davidoff
0362e6e31d
Implement DEFLATE compression level control properly, with a semver break
2026-03-05 17:59:18 +00:00
Sergey "Shnatsel" Davidoff
0fe5b2804e
Merge pull request #348 from Shnatsel/deflate-level
...
Expose precise DEFLATE level controls
2026-03-05 17:23:59 +00:00
Sergey "Shnatsel" Davidoff
a589010099
Fix typo
2026-03-05 12:22:37 +00:00
Sergey "Shnatsel" Davidoff
53498074a4
Merge impl blocks
2026-03-05 12:22:25 +00:00
Sergey "Shnatsel" Davidoff
cb543cded7
Expose precise DEFLATE level controls
2026-03-05 11:58:18 +00:00
A. Molzer
cf8f96568e
Expose Decoder::seek_to_directory
2026-03-04 08:59:41 +01:00
A. Molzer
4ff88e658d
Rewrite Decoder::seek_to_image
2026-03-04 05:12:31 +01:00
A. Molzer
14ebf376f3
Move Directory from image into decoder proper
...
This prepares allowing to iterate over a TIFF file with invalid images
while `Image` maintains invariants. For instance we precalculate the
amount of buffer space and verify that the count of strips makes sense
in the constructor—so we do not have to redo that for every other entry
point.
2026-03-04 03:37:42 +01:00
Aurelia Molzer
37578add53
Merge pull request #344 from RunDevelopment/fix-libtiffpic-test-for-windows
...
Fix libtiffpic test for Windows
2026-03-03 20:42:20 +00:00
Aurelia Molzer
2b9476566b
Merge pull request #346 from RunDevelopment/invert-color-as-chunks
...
More optimal code gen for `invert_colors`
2026-03-03 20:30:20 +00:00
Aurelia Molzer
448a0e61d1
Merge pull request #345 from mpospelova/increase-group4reader-height-size
...
Change Group4Reader height dimension from u16 to u32
2026-03-03 20:23:52 +00:00
RunDevelopment
d872ff8751
Unify grayscale integer code paths
2026-03-03 14:54:32 +01:00
RunDevelopment
0a878888db
More optimal code gen for invert_colors
2026-03-03 14:36:16 +01:00
Maria Pospelova
a0a95ef86e
Fix formatting
2026-03-03 13:26:09 +00:00
RunDevelopment
bbb5e5a41b
Use std::path::MAIN_SEPARATOR
2026-03-03 14:13:00 +01:00
RunDevelopment
f74169d4af
Fix libtiffpic test for Windows
2026-03-03 14:11:24 +01:00
Maria Pospelova
c304a3cc13
Upgrade Group4Reader dimensions from u16 to u32
2026-03-03 10:50:27 +00:00
Sergey "Shnatsel" Davidoff
9a9193345c
Merge pull request #343 from Shnatsel/float-predictor-opt
...
Optimize floating-point predictor encoding
2026-02-27 01:14:36 +00:00
Sergey "Shnatsel" Davidoff and Claude
22046d4272
Simplify byte shuffle to direct scatter writes
...
Replace chunked scratch-buffer approach with direct indexed writes
into the pre-allocated output. Simpler and faster in practice.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-02-27 01:02:41 +00:00
Sergey "Shnatsel" Davidoff and Claude
2c5fe2c2f5
Use chunked writes for byte shuffle in fp_predict
...
Replace single-byte pushes with chunk-based processing: pre-allocate
zeroed output, shuffle 4 values at a time into a stack buffer, then
copy_from_slice each byte lane into the output.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-02-27 00:47:13 +00:00
Sergey "Shnatsel" Davidoff and Claude
eceaa1f14d
Add encoding benchmark for RGB32Float with float predictor and DEFLATE
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-02-27 00:27:40 +00:00
Aurelia Molzer
d42db25c27
Merge pull request #342 from Shnatsel/float-predictor-encoding
...
Implement floating-point predictor (Predictor 3) encoding
2026-02-26 20:30:08 +00:00
Sergey "Shnatsel" Davidoff and Claude
c74f23784c
Vectorize byte-level horizontal differencing in fp_predict
...
Process the difference step in reverse 16-byte chunks, reading both
curr and prev into local arrays before writing. This makes all 16
subtractions independent, enabling autovectorization (confirmed with
SSE2: movdqu + psubb).
Co-Authored-By: Claude <noreply@anthropic.com >
2026-02-26 15:45:21 +00:00
Sergey "Shnatsel" Davidoff and Claude
8b0da5939a
Deduplicate fp_predict_f32 and fp_predict_f64 with a declarative macro
...
Replace the two near-identical floating-point predictor encoding
functions with a single fp_predict! macro parameterized on the float
type, using core::mem::size_of to derive the byte size.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-02-26 15:29:29 +00:00
Sergey "Shnatsel" Davidoff
fdde3467fc
Apply clippy lint
2026-02-26 15:00:21 +00:00
Sergey "Shnatsel" Davidoff and Claude Opus 4.5
3f2066bb20
Implement floating-point predictor (Predictor 3) encoding
...
Add support for encoding TIFF images with the floating-point predictor,
which improves compression ratios for floating-point image data.
The floating-point predictor works by:
1. Converting floats to big-endian bytes
2. Shuffling bytes so all first bytes are together, all second bytes, etc.
3. Applying byte-level horizontal differencing across the buffer
This complements the existing decoding support for Predictor 3.
Supported types: Gray32Float, Gray64Float, RGB32Float, RGB64Float,
RGBA32Float, RGBA64Float, CMYK32Float, CMYK64Float.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-25 23:05:35 +00:00
Aurelia Molzer
2ac8be1177
Merge pull request #337 from image-rs/cieluv
...
The whole libtiffpic test suite and SgiLuv compression
2026-02-20 06:47:57 +00:00
A. Molzer
c81d0a9c94
Skip endianess swap for SGI compression
2026-02-14 18:04:07 +01:00
A. Molzer
983c5baea0
Introduce LogL(uv) encodings
2026-02-14 18:04:07 +01:00
A. Molzer
abf3cc617d
Bump MSRV to 1.88
2026-02-14 18:04:07 +01:00