# Compression Compression is an optional postprocessing step for DCASE JSON size constraints. It operates on exported prediction files and has no model or checkpoint dependency: ```bash said compress said_evaluation/inference_outputs --output said_compressed ``` The default output of single-recording SAID inference is also accepted: ```bash said compress said_output --output said_compressed ``` Both inputs contain standard complete-SAID `*_inference.json` files. The class-agnostic Audio2Sph JSON schema has no DCASE category or confidence fields and is outside this submission-size postprocessing route. NPZ archives requested with `said infer --format npz` retain dense numerical maps and are also outside this DCASE JSON postprocessing command. The default `paper-table1` preset implements the evaluated Table 1 artifact. For each acoustic map it first removes points below 10% of the map peak. Confidence at least 0.20 selects a two-pixel grid and adds no boundary points. Lower confidence selects a six-pixel grid and adds support points two pixels from the low-energy boundary, with support energy equal to 12% of the peak. Every detection and its metadata are retained. Classes 2, 3, 5, and 10 have no point cap; their strongest point in each selected grid cell is retained. Other classes use an 88-point cap. Maps that already contain at most 88 points after thresholding and boundary support keep those points. Larger maps first form grid candidates. If the grid leaves fewer than 88 candidates, selection returns to all post-threshold and boundary points. The cap then selects across high-, medium-, and low-energy bands while favoring spatial spread, until at most 88 remain. Coordinates use three decimals, energies use four, and integral coordinates are written as JSON integers. The complete settings, input SHA256, and output SHA256 are recorded in `compression_manifest.json`. The size constraint is 20,000,000 bytes for each prediction JSON. A file that exceeds the limit is recomputed with the recorded stricter setting: the confidence split becomes 0.25, the low-confidence boundary offset becomes four pixels, and the 88-point cap applies to every class. Point budgets of 64, 48, and 32 are then tried in sequence if needed. The manifest stores every attempted preset, its byte count, and the selected preset for each file. Compression raises an error and publishes no output directory if all presets remain above the limit. It never removes detections to satisfy the limit. Table 1 uses the paper SAID (PaSST) checkpoint, decimal megabytes, and the complete 78-recording development-test split: | Prediction | Macro mAP (4.2) | Macro Pearson r (6.30) | Max. JSON | Avg. JSON | |---|---:|---:|---:|---:| | Original | 0.1202 | 0.4268 | 941.50 MB | 369.58 MB | | Compressed | 0.1177 | 0.4487 | 18.70 MB | 8.08 MB | The compressed Table 1 artifact used `paper-table1` for all 78 files; its per-recording fallback count is zero. Use the automatically downloaded official evaluator described in [Evaluation](evaluation.md) to score the compressed directory without repeating inference: ```bash said evaluate "$HOME/datasets/dcase2026_task3" \ --predictions said_compressed \ --output said_compressed_evaluation \ --add-previous-metrics ``` The separate output directory preserves the original evaluation record while storing the compressed metrics and evaluator identity.