Releases: plokijuter/7zip
Release list
7-Zip 26.02 + Transpose filter (allocated ID 04 F7 13 01)
7-Zip 26.02 with an added Transpose filter for data made of fixed-size records:
sensor logs, struct arrays, PCM audio, numeric tables.
Method ID 04 F7 13 01, allocated by Igor Pavlov. This replaces the short ID 0C
used by the previous release,
which was reserved for the 7-Zip and xz developers and should not have been taken.
Archives written by that release are not readable by this one, and vice versa.
What is new since v26.02-transpose-1
- allocated method ID
04 F7 13 01instead of the reserved0C - the GUI now offers anyz2 (Transpose) under Preprocessing, separate from the
compressor choice, so the dictionary and order settings go to LZMA2 / LZMA / PPMd
instead of being applied to a filter that has no such parameters - full Windows package (
7zFM.exe,7zG.exe,7z.exe,7z.dll), not just the CLI
Usage
7z a -t7z -m0=Transpose -m1=PPMd:o=16 archive.7z file # R detected automatically
7z a -t7z -m0=Transpose:15 -m1=PPMd:o=16 archive.7z file # R forced
The filter is a preprocessor: pair it with a real coder (PPMd, LZMA, LZMA2) as -m1.
Archives are only readable by a build that has this filter.
In the GUI, pick anyz2 (Transpose) in Preprocessing and the compressor separately.
Verification
- 12 288 stream round trips: every R from 1 to 256, block boundaries, three read/write modes
- 58 archives across LZMA2 and PPMd, plus an AES/BCJ control, all extracting byte-identical
- GUI checked under Wine: an archive created from the dialog reports
Method = Transpose PPMD:o16:mem22and extracts identical to the original - compiles clean under
-Werror -Wall -Wextra
Files
| file | |
|---|---|
7zip-anyz2-windows-x64.zip |
Windows x64, run 7zFM.exe |
7z-linux-x64, 7z-linux-x64.so |
Linux x64 CLI and codec library |
transpose-integration.patch |
the integration commit alone |
transpose-filter.patch |
the whole branch against upstream main |
SHA256SUMS |
checksums of the above |
Upstream pull request: ip7z/7zip#245.
7-Zip 26.02 + Transpose filter (OBSOLETE — used the reserved ID 0C)
⚠️ Obsolete release — do not use these binariesThey register the filter at the short ID
0C, which is reserved for the 7-Zip and
xz developers. That was my mistake. Igor Pavlov has since allocated
04 F7 13 01for this filter, and the current code uses it.Archives written by these binaries are readable only by these binaries. Keep them
if you have such archives; do not create new ones. Current work is on the
transpose-filterbranch.
7-Zip 26.02 with an added Transpose filter (method 0C — reserved ID, see warning above) for data made of fixed-size records: sensor logs, struct arrays, PCM audio, numeric tables.
Measured with PPMd:o=16 behind the filter:
| data | PPMd alone | with filter | |
|---|---|---|---|
| int32 ascending array (240 KB) | 98 450 | 2 442 | 40x |
| 16-byte struct records (800 KB) | 298 654 | 8 583 | 35x |
fixed-record .dat file (450 KB) |
76 019 | 20 975 | 3.6x |
| 4x float32 sensor log (48 MB) | 41 876 772 | 11 721 960 | 3.6x |
| random data / text | — | — | identity, untouched |
On the 48 MB sensor log that is 39% smaller than xz -9e and 66% smaller than zstd -19.
Usage
7zz a -t7z -m0=Transpose -m1=PPMd:o=16 archive.7z file # R detected automatically
7zz a -t7z -m0=Transpose:15 -m1=PPMd:o=16 archive.7z file # R forced
The filter is a preprocessor; pair it with a real coder as -m1. Archives are only readable by a build that has this filter — a stock 7-Zip answers ERROR: Unsupported Method. Method ID 0C is an unassigned slot claimed by this fork, not an official allocation.
Assets
| file | |
|---|---|
7zz-linux-x64 |
Linux x86-64, built with gcc |
7zz-windows-x64.exe |
Windows x86-64, cross-compiled with mingw-w64, static |
transpose-filter.patch |
the complete diff against upstream 26.02 (git apply) |
commits.tar.gz |
the same work as two git am-able commits |
SHA256SUMS |
checksums for all of the above |
Source: branch transpose-filter · diff main...transpose-filter · upstream PR ip7z/7zip#245
Verification
60 real files of assorted types, forced R from 2 to 256, sizes 0/1/100/4095/4096/65535/65536/200000, a 48 MB stream, and archives written by an earlier property-format build: all extract byte-identical. Archives written on Linux extract on Windows and back, verified by SHA-256. Compiles clean under -Werror -Wall -Wextra.