docs: sync BITEXACT_PLAN/roadmap/AGENTS to 2026-08-21 state
BITEXACT_PLAN: structural column in S0 table; Step 2 re-scoped (combine thunk semantics, acc has no single-band consumer; FUN_1805316e0 is a coefficient writer NOT a mask combiner — fixed in Steps 2/8); Step 4 FFT-conv downgraded to P3 (window near-flat); Step 6 pipeline done (render48k); entry point = saturation hunt then Step 7 capture. roadmap: status 2026-08-21, P4 row + ~80% estimate with dual-canon results. AGENTS: two-canon model description, render48k/corpus_structural commands, stale-binary sweep hazard warning, updated gaps list.
This commit is contained in:
+24
-16
@@ -10,21 +10,27 @@
|
||||
(WAV16 → рендер → WAV24), `dsp_notes.md` (карта функция↔смысл, константы, LUT),
|
||||
`verify_bit_exact.py` (прогон всех свипов, побайтовое сравнение).
|
||||
|
||||
## Текущий статус (2026-08-20, P4)
|
||||
## Текущий статус (2026-08-21, P4)
|
||||
|
||||
> **2026-08-21: bit-exact НЕ достигнут** — честная dB-параллель (корпус mean 1.594 dB,
|
||||
> comb 10 dB). Активный канон — bridge (эмпирическая погона). Путь к байтам — в
|
||||
> `BITEXACT_PLAN.md` (8 шагов: структурная цепочка → combine/acc → bit-exact exp2/FFT →
|
||||
> геометрия 48000/4096 → A/B/γ → стерео). См. также итог comb-экспериментов в
|
||||
> `handoff/NOTES_LEVEL.md`.
|
||||
> **2026-08-21: bit-exact НЕ достигнут** — честная dB-параллель. Два канона:
|
||||
> bridge (эмпирическая погона, корпус mean 1.594 dB, comb 10.1) и СТРУКТУРНАЯ цепь
|
||||
> FUN_180529fe0 на внутренней сетке 48000/4096 (`dsp/build/render48k`, корпус mean
|
||||
> 2.286 dB, comb **6.12** — уже лучше bridge на мультиполосе, res тоже лучше; хуже на
|
||||
> однополосных). Разрыв формы кривой редукции: реальная насыщается (C_max≈0.70),
|
||||
> exp2(−lvl) нет → Шаг 7 захват A/B/γ или статический hunt clamp'а в level-пути.
|
||||
> Путь к байтам — `BITEXACT_PLAN.md` (8 шагов, пере-скоуп Шага 2: acc не имеет
|
||||
> однополосного консюмера; FUN_1805316e0 = writer коэффициентов, НЕ комбинер).
|
||||
> Полный журнал — `handoff/NOTES_LEVEL.md` (апдейты 20j–21c).
|
||||
|
||||
- **Статический декомп DSP-ядра — закрыт (~95%)**: twin-резонатор, генератор case8,
|
||||
level-path (0x529fe0/0x563440/0x563a60), mask-apply (FUN_180529fe0 mono-path), IIR-трекеры,
|
||||
FFT-conv (0x535a70), main render-loop (FUN_18052e260) декодированы; `.dis` в `handoff/nls_dasm/`.
|
||||
- **Канон — C++ `FramedDetector`** (`dsp/framed_model.cpp`), реальная mask-цепь отвоевана от
|
||||
эмпирики: `level→scale→IIR1/2 leaky→exp2(-mask)·blend→combine/acc→dual-warp→IIR3×2→dry/wet→FFT-conv`.
|
||||
Live-таблицы в `dsp/rt_mask_tables.{hpp,cpp}`, `rt_weights.{hpp,cpp}`.
|
||||
- **Результаты**: t1kq err **−0.43 dB** (level_scale=600); comb per-tone err ≤6.4 dB.
|
||||
- **Структурная цепь в C++** (`dsp/framed_model.cpp::process_band_structural`, сетка 48k/4096):
|
||||
`scale→LUT(level-domain)→IIR1→IIR2→mirror→blend/exp2→combine(acc-update)→dual-warp→IIR3 bidirectional×2→dry/wet`;
|
||||
live-таблицы в `dsp/rt_mask_tables.{hpp,cpp}`, `rt_weights.{hpp,cpp}`. Прогон:
|
||||
`scripts/corpus_structural.py`. IIR3 = [fwd+bwd]×2 по декомпу (коммит 1a616e1).
|
||||
- **Результаты структурной цепи (62 кейса)**: comb 6.12 (bridge 10.15), res 0.44 (0.63),
|
||||
t1kq 0.77 / t1k 2.11 / al 0.99 / dual 3.26 (хуже bridge). Детали: NOTES_LEVEL:21c.
|
||||
- **Честная тримнутая метрика** (длина выхода = длина входа) — см. AGENTS.md.
|
||||
- **Цель bit-exact (Phase C) — в работе**: twin-транскрипция в `dsp/` готова и проходит
|
||||
- **Бит-экзактная C++ транскрипция (Phase C)**: twin (float-parity 1.27e-5, tables_check ALL OK),
|
||||
@@ -76,14 +82,16 @@ gain = max(1 - C, eps) * res_k**rp # rp = rp0 * Q**drp (res_power)
|
||||
| P2 | mask-accumulator combine kernels (8d60/5a20/3c40) | ✅ DONE (levelpath.cpp combine_sub/acc_add/acc_fma) |
|
||||
| P2.5 | twin-mask factory (56e3e0) + band LUT apply (563a60) | ✅ DONE (levelpath.cpp) |
|
||||
| P3 | бит-экзактная base-CRT FFT | ⚠️ partial: архитектура размечена, vlog(ln) транскрибирован; butterfly+shuffle+plan-gen осталось |
|
||||
| P4 | render-loop 52e260 + связка mask→FFT-conv + full pipeline | ✅ **существенно продвинут (2026-08-20)**: mono-path FUN_180529fe0 декодирован, реальная mask-цепь транскрибирована в `framed_model.cpp` (IIR1/2/3 leaky + exp2-bigkernel + dual warp + dry/wet), live-таблицы извлечены (`rt_mask_tables`); t1kq −0.43 dB, comb ≤6.4 dB. Остаток: PRNG-пролог, FFT-conv, бит-экзактный exp2, combine-фидбек, SR-mismatch |
|
||||
| P4 | render-loop 52e260 + связка mask→FFT-conv + full pipeline | ✅ **существенно продвинут (2026-08-21)**: mono-path FUN_180529fe0 декодирован и транскрибирован на внутренней сетке 48k/4096 (`render48k`, LUT в level-домене, IIR3 bidirectional по декомпу); полный структурный корпус: comb **6.12** (bridge 10.15), res 0.44; однополосные хуже bridge — нужен шаг насыщения кривой редукции. Combine-семантика декодирована до thunk'ов; acc не имеет однополосного консюмера (пере-скоуп). Остаток: точка потребления acc/f6f8, PRNG-пролог, бит-экзактный exp2, FFT-conv (P3), SR-хвосты |
|
||||
| P5 | стерео M8 (link/balance/LR-vs-MS) + multiband combine 5316e0 | TODO (в скоупе, не начат) |
|
||||
|
||||
Обновлённая оценка (2026-08-20): структурно ~75% готово — mask-apply цепь FUN_180529fe0
|
||||
полностью декодирована (scale→IIR1/2→exp2→combine→warp→IIR3→dry/wet→FFT-conv) и перенесена
|
||||
в C++, live-таблицы (IIR A/B, warp, band768, PRNG LUT) извлечены. Осталось: (а) полная
|
||||
бит-экзактная FFT (butterfly+shuffle+plan-gen — недели), (б) PRNG-пролог + FFT-conv +
|
||||
бит-экзактный exp2 для bit-exact калибровки, (в) стерео M8 (P5).
|
||||
Обновлённая оценка (2026-08-21): структурно ~80% готово — mask-apply цепь FUN_180529fe0
|
||||
декодирована (scale→LUT→IIR1/2→exp2→combine→warp→IIR3-bidi→dry/wet→FFT-conv) и перенесена
|
||||
в C++ на внутренней сетке, live-таблицы (IIR A/B, warp, band768, PRNG LUT) извлечены,
|
||||
полный корпус гоняется. Осталось: (а) полная бит-экзактная FFT (butterfly+shuffle+plan-gen
|
||||
— недели), (б) насыщение кривой редукции (Шаг 7 захват A/B/γ или clamp-hunt в level-пути),
|
||||
(в) точка потребления combine acc/f6f8, (г) PRNG-пролог + FFT-conv + бит-экзактный exp2,
|
||||
(д) стерео M8 (P5).
|
||||
|
||||
## Ключевые находки (итог)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user