Skip to content

PJA 0.7.0

Choose a tag to compare

@github-actions github-actions released this 05 Nov 03:33
· 89 commits to main since this release

Six new codecs in the zpaq-std plugin: the JPEG-LS and lossless JPEG decoders at half the size, and more than twice as fast in zpaq 7.15.

  • The o codecs. pjalso, pjallo and pjalsxo, and their z (pjalszo, pjallzo, pjalsxzo), are pjals, pjall and pjalsx with the same streams, the same files and the same memory, and a ZPAQL decoder compiled with zpaqlc's opt=2, which until now only the version 7 codecs had. Every zpaq-std block carries its decoder, so this pays off in small groups and in groups split for zpaq 7.15 to extract in parallel.
codec ZPAQL before o
pjals / pjalso 55,989 24,076
pjall / pjallo 30,508 15,058
pjalsx / pjalsxo 60,776 25,623
pjalsz / pjalszo 32,984 24,724
pjallz / pjallzo 18,003 15,693
pjalsxz / pjalsxzo 36,110 26,278
  • Faster to extract without the plugin. libzpaq (zpaq 7.15's engine) on the same data: JPEG-LS 78.5 -> 36.2 s, lossless JPEG 2.8 -> 1.2 s, subsampled JPEG-LS 410.9 -> 178.6 s, every file back.
  • Checked on Windows XP: the original zpaq 7.15 (32-bit, no plugin) extracts archives written with the o codecs byte for byte, and the x86 plugin round-trips every file with each of the six.
  • Nothing else changes. zpaq-std's -sa takes the o codecs in place of pjall, pjals and pjalsx once it ships this plugin; those stay to read older archives. The other fourteen codecs, their ZPAQL, the .pja format and the streams are 0.6.4's: the command writes the same bytes. The wiki's zpaq-std plugin page has the codec families and names.

Downloads

platform the pja command the zpaq-std plugin libpja (C library, 7-Zip plugin)
Linux x86-64 pja-0.7.0-linux-x86_64.tar.gz pja-0.7.0-zpaqstd-plugin-linux-x86_64.tar.gz pja-0.7.0-lib-linux-x86_64.tar.gz
Linux x86 (32-bit) pja-0.7.0-linux-x86.tar.gz pja-0.7.0-zpaqstd-plugin-linux-x86.tar.gz pja-0.7.0-lib-linux-x86.tar.gz
Linux arm64 pja-0.7.0-linux-arm64.tar.gz pja-0.7.0-zpaqstd-plugin-linux-arm64.tar.gz pja-0.7.0-lib-linux-arm64.tar.gz
macOS arm64 pja-0.7.0-macos-arm64.tar.gz pja-0.7.0-zpaqstd-plugin-macos-arm64.tar.gz pja-0.7.0-lib-macos-arm64.tar.gz
Windows x64 (7 and later) pja-0.7.0-windows-x64.zip pja-0.7.0-zpaqstd-plugin-windows-x64.zip pja-0.7.0-lib-windows-x64.zip
Windows x86 (XP and later) pja-0.7.0-windows-x86.zip pja-0.7.0-zpaqstd-plugin-windows-x86.zip pja-0.7.0-lib-windows-x86.zip

pja-0.7.0-zpaqstd.tar.gz holds the plugin's sources as zpaq-std vendors them, with VENDOR.md. CI builds and checks every binary on its own platform (.github/workflows/release.yml); libpja is checked with its C test and, on Linux x86-64, through a real 7-Zip. SHA256SUMS has the checksums. The Linux builds need glibc 2.34 or later. The macOS ones are not signed: run xattr -d com.apple.quarantine after unpacking.