測定日: 2026-08-31
現行の独立ブロック + fixed-Deflate 構成では、32 KiB ブロック / match-chain 192 が最小だった。
- SX表示サイズ: 292,489 bytes
- 入力: 524,288 bytes
- 200,000 bytes目標との差: +92,489 bytes(約31.6%)
- したがって、ブロックサイズと探索深さの調整だけでは200 KBには届かない
16 KiBの現行基準値は297,729 bytesで、32 KiB / chain 192への改善は5,240 bytes(約1.8%)だった。
chain は fixed-Deflate の一致検索深さ。SX は各PS1実行ファイルをDuckStationで動かし、画面に表示されたコンテナ格納サイズ。DFL/LZS/RAW はブロックごとのcodec選択数。
| コンテナブロック | chain | SX | ブロック数 | DFL/LZS/RAW | 画面表示率 |
|---|---|---|---|---|---|
| 4 KiB | 96 | 314,551 | 128 | 127/0/1 | 59% |
| 8 KiB | 96 | 304,380 | 64 | 64/0/0 | 58% |
| 16 KiB | 24 | 298,752 | 32 | 32/0/0 | 56% |
| 16 KiB | 96 | 297,729 | 32 | 32/0/0 | 56% |
| 16 KiB | 192 | 297,555 | 32 | 32/0/0 | 56% |
| 32 KiB | 24 | 294,015 | 16 | 16/0/0 | 56% |
| 32 KiB | 96 | 292,768 | 16 | 16/0/0 | 55% |
| 32 KiB | 192 | 292,489 | 16 | 16/0/0 | 55% |
- Mac Studio上でDocker版PSn00bSDKツールチェーンを使用
luksamuk/psxtoolchain:latest- 24 physical / 32 logical CPU
- ブロックサイズ4条件を並列投入。chain sweepは6条件を並列投入し、各ビルドは
-j24 - 16 KiB / chain 24だけGCC内部エラーが出たため、同じ設定を
-j1で再ビルドして測定 - 生成した各CUEを、ローカルMacのDuckStation実行ファイルへ直接渡して確認
- 圧縮・コンテナ比較中はwire V6のステレオOFDM、16QAM、96 carriers、FEC 16+6、FSKなしを維持
4 KiBはブロック境界のリセットが多く、8 KiBも16 KiBより大きかった。16 KiB / chain 96から32 KiB / chain 192にすると、実測で5,240 bytes縮む。一方、chainを96から192に増やした効果は16 KiBで174 bytes、32 KiBで279 bytesにとどまる。
ヘッダだけの差は、16 KiBの32ブロックから32 KiBの16ブロックにして256 bytes減るだけ。主な差は、ブロックごとの圧縮履歴リセットとfixed Huffmanの表現力であり、探索深さを増やすだけでは大幅な短縮にならない。
なお、画面に表示されるBLOCK SIZE 32 KiBはOFDM送信側のtransport chunkであり、表の「コンテナブロック」とは別の設定である。
- 確認済み: Mac StudioでのPS1ビルド、各バリアントのDuckStation実行、画面上のcodec選択数・SX格納サイズ
- エミュレーターのみ: DuckStation上の結果であり、実機のSPU音声出力・CD-R・録音機器を通した受信ではない
- 未検証: 物理PlayStationからの音声キャプチャ、実機での転送時間、実機受信成功率
- BIOS本体、復元ダンプ、鍵、CRCは保存・公開していない
200 KBを狙うには、32 KiB境界の微調整ではなく、dynamic Huffmanと、独立ブロック復旧要件を見直した連続Deflate履歴の比較が必要。これは復旧単位とwire/container versionに影響するため、現行decoder互換を保った別バージョンの実験として扱う。