3.0 Windows & Linux
v3.0 (03/30/2026) (public)
- new flag: [-sfth] parallel single-file compression using 3 threads (Y/Cb/Cr)
~25-30% faster on 3+ thread machines; ratio preserved (~0.01% delta)
generates new .pjg format (0x01 marker); requires v3.0+ to decompress
both encode and decode are parallelized - warning shown when -sfth is used with fewer than 3 detected threads
- optimal batch+single-file usage: -th<N/3> -sfth on an N-thread machine
- fixed: [a] mode no longer creates empty .pjg files for skipped JPEGs
- fixed: [x] mode no longer creates empty .jpg files for skipped PJGs
- fixed: skipped files in a/x mode are now silent (no warning printed)
- fixed: unrecognized flags (e.g. -th=) now print a clear error message
instead of being silently treated as filenames - fixed: jpgfilesize/pjgfilesize changed from int to int64_t — prevents
0.00% ratio reporting on large files (>2GB) and on 32-bit builds - fixed: -th0 on x86 now caps at 2 threads to prevent OOM; x64/Linux
still uses all available cores - fixed: progress counter now shows only processable files (e.g. "2 of 2"
instead of "5 of 5" when 3 of the 5 files are skipped) - fixed: verbose mode (-v1/-v2) no longer prints header lines for skipped
files — only processed files appear in the output - fixed: skipped files (wrong type) no longer print warnings in MT mode
(-th2 or higher) - fixed: directories from wildcard expansion are now silently ignored;
use -r explicitly to recurse into subdirectories - fixed: decompressing -sfth files with -ver incorrectly reported "file sizes
do not match" even when the output was bit-for-bit correct; verify now
re-encodes using the same format (sfth or standard) as the original PJG - fixed: 'mix' mode warning incorrectly referenced '-c' (non-existent flag);
message now correctly reads 'a' (compress only) - fixed: 'list' subcommand displayed 'v0.1' for -sfth files instead of the
correct version; sfth files now show 'v3.0 (parallel)' - maintainer: Yade Bravo (https://github.com/YadeWira/packJPG)