Recursive AI

Branch and delta filters

All onearchive docs

Reversible transforms that make code and sampled data easier to compress. They are used inside xz and 7z and are public so that other containers can use them. Source: the xz file format specification, section 5.3.2 (ids, alignment, start offset). The rules for each instruction set, including how the RISC-V filter was derived, are in lzma-decoder.md.

TypesBranchFilter (with BranchArchitecture), DeltaFilter; both in RecursiveAI.OneCompress.Filters
Architecturesx86 (0x04), PowerPC, IA-64, ARM, ARM-Thumb, SPARC, ARM64, RISC-V
UseConvert(Span<byte>) works in place in both directions and returns how many leading bytes are final; present the rest again with more data behind it
Start offsetan optional 32-bit position aligned to the architecture
Deltadistance 1 to 256, out[i] = in[i] + out[i - distance]
In 7zthe filter coders are read and written (7z-reader.md, 7z-writer.md); BCJ2, which has four input streams, is listed but not decoded