Repository navigation
Source layout
YadeWira edited this page Nov 7, 2026
·
3 revisions
pas/pjajpeg.pas |
JPEG ↔ DCT coefficients, plus what is needed to rebuild the exact bits |
pas/pjajls.pas |
JPEG-LS ↔ samples, the same way |
pas/pjaarith.pas |
the binary arithmetic coder |
pas/pjamodel.pas |
the context models (SSE4.1 assembly for the mixer, chosen at run time) |
pas/pjav7c.c, pas/pjav7c_loop.h, pas/pjav7.pas
|
stream version 7's model in C (SSE2, plus SSE4.1 and AVX2 copies chosen at run time), and its Pascal side |
pas/pjasysc.c |
C around the model: BLAKE3 chunks, the Huffman scan reader and writer, the FF scan |
pas/build_c.sh |
builds the C part for FreePascal to link |
pas/pjaj2k.pas, pas/pjaj2kcs.pas
|
JPEG 2000: the boxes and codestreams found in a file; a codestream taken apart and rebuilt byte for byte (tier 2: packets, tag trees, layers) |
pas/pjaj2kt1.c |
JPEG 2000 tier 1: the MQ coder, the passes, how each encoder ends its segments |
pas/pjaj2km.pas, pas/pjaj2kmc.c
|
stream version 8's mode 1: the decisions through a context-mixing model (and mode 3 for HTJ2K, with pjaj2kht.c and pjaj2khm.c) |
pas/pjaj2kpx.pas, pas/pjaj2kpm.c
|
modes 2 and 4: a lossless codestream as its pixels (wavelets, the bitonal and multi-bit pixel models) |
pas/pjacodec.pas |
the compressed stream, verified when compressing; bands in threads |
pas/pjablake3.pas |
BLAKE3, checked against the official implementation |
pas/pjaformat.pas, pas/pjalimits.pas
|
the .pja file: header, size, hash |
pas/pjapack.pas |
codec and format together, in the order that makes it safe |
pas/pjafs.pas |
writing the output: no links followed, no half-written files, nothing unverified under its name |
pas/pjacli.pas |
the pja command (jobs, threads shared by size, the committer thread that flushes outputs) |
pas/pjainfo.pas, pjainfojpeg.pas, pjainfoj2k.pas, pjainfopja.pas
|
pja info: a file's structure, one provider for each format |
pas/pjareport.pas, pas/pjasysinfo.pas
|
pja report and --version: the build, the system, the issue link |
pas/pjabench.pas, pas/pjaselftest.pas (+ .inc) |
pja bench, and pja selftest with the samples inside the binary |
pas/pjastage.pas |
the per-thread stage clock behind --stats
|
pas/pjathread.pas, pas/pjacpu.pas
|
a thread join by event (FPC's waits nap 100 ms), the processor count and features |
pas/pjaheap.pas |
the process heap for the Windows libraries (FPC's DLL heap could delete its own lock) |
pas/lib/ |
libpja: the C library (pja.h, pjalib.pas), the 7-Zip filter and codec (pjafilter.c, pja7z.c) |
pas/tests/ |
the tests the two suites run, cli.sh for the command |
pas/plugin/ |
PJA as a zpaq-std codec plugin |
pas/plugin/zpaql/ |
the plugin's decoder in the language zpaqlc compiles to ZPAQL |
tools/zpaql/ |
a compiler to ZPAQL, a ZPAQL interpreter and the generator of the plugin's decoder (Python, build time only) |
doc/ |
CODEC.md (how the codec works, what was measured and tried), FORMAT.md, POLICY.md, CLI.md
|