Skip to content

Commit 69d4aa3

Browse files
committed
docs: H.268 addendum §7-§10 — comma closure, 96-bit facet carving, kernel-shape rule, replayable-tile synergies
Extends pr-x12-h268-morton-wgpu-synergies.md with four sections per the new plan file (.claude/plans/H268-comma-96bit-replayable-addendum-v1.md): - §7 comma closure: Pythagorean-comma/X-Trans anti-moire framing; the coprime-integer surrogate (helix CurveRuler stride-4-over-17); D-QUANTGATE rationale restated to its three real legs (libm cliff, WGSL floats, bijective closure) with the "floats round differently" leg explicitly withdrawn (std::f64::consts receipts, five-backend bit-identical contract). - §8 96-bit facet carving: 48 CAM-PQ + 24 helix ResidueEdge + 24 turbovec = the V3 12-byte content-blind payload; ClassView as carving/LUT selector; Signed360 as out-of-row variant; 6x256^2 CAM-PQ vs bgz17 table-family clarification. - §9 kernel-shape rule: VNNI/AMX for matmul-shaped, LUT/texture for lookup-shaped (turbovec NativeLut 11.4x measured receipt); ITU claim scoped to compute kernels only. - §10 replayable-tile synergies: the 4x4 Morton tile serving H.268 mode-decision AND cognitive-shader dispatch — nine consequences, all probe-gated; no kill condition weakened. Old §6 Cross-references renumbered to §11; blackboard entry appended; knowledge-doc test suite green (117/117). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
1 parent b66ddbd commit 69d4aa3

3 files changed

Lines changed: 362 additions & 2 deletions

File tree

.claude/blackboard.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,3 +730,34 @@ default is x86-64-v3 (avx2) so ndarray_simd activates on avx512 builds only.
730730
- **Probe queue established:** PROBE-GPU-LUT, PROBE-MORTON-CTU,
731731
PROBE-RANS-INTERLEAVE (new names), + OGAR PHASE-1/PERT-RHO/PYR-1,
732732
WHP-1..4, Plan E bits/Gaussian, a2ui N2 — each with pass/kill conditions.
733+
734+
---
735+
736+
## 2026-07-16 (3) — H.268 addendum: comma closure + 96-bit carving + kernel-shape rule + replayable-tile synergies
737+
738+
- **`pr-x12-h268-morton-wgpu-synergies.md` extended §7-§10** (old §6
739+
Cross-references renumbered to §11), per
740+
`.claude/plans/H268-comma-96bit-replayable-addendum-v1.md`.
741+
- **§7 comma closure:** Pythagorean-comma/X-Trans anti-moiré framing;
742+
`CurveRuler` stride-4-over-17 as the coprime-integer surrogate.
743+
D-QUANTGATE rationale restated to its three real legs (libm
744+
non-portability, WGSL floats not IEEE-pinned, bijective closure) —
745+
the "floats round differently" leg is explicitly withdrawn, with
746+
receipts (`std::f64::consts::{GOLDEN_RATIO,EULER_GAMMA}` compile
747+
bit-exact on 1.94/1.95; no `std::simd::const::*`; `gemm_f64_tiled`
748+
five-backend bit-identical). φ-PLACES/walk-QUANTIZES/γ-CORRECTS
749+
division of labor stated as a rule.
750+
- **§8 96-bit facet carving:** CAM-PQ 48b + helix `ResidueEdge` 24b +
751+
turbovec 24b = 96 bit = the V3 12-byte content-blind payload identity;
752+
`Signed360` (48b) is the out-of-row alternate carving; 6×256² CAM-PQ
753+
(384KB) clarified as distinct from bgz17's one-table-per-palette shape.
754+
- **§9 kernel-shape rule:** VNNI/AMX for matmul-shaped ops, LUT/texture
755+
for lookup-shaped ops — turbovec NativeLut measured **11.4×** faster
756+
than the VPDPBUSD GEMM polyfill (n=20k/dim=512/4-bit, FINDING). ITU
757+
claim scoped to compute kernels only (not CABAC/conformance/ECM count).
758+
- **§10 replayable-tile synergies:** 4×4 Morton tile as the shared
759+
object between H.268 (anti-CABAC seek, seekable grain, C6-scoped
760+
native tiling) and cognitive shaders (RNG-free exploration, replayable
761+
thinking, anti-confabulation, cache-native 192B working set) — all
762+
nine consequences stay **probe-gated** (D-MTS-1..3, PHASE-1/PERT-RHO/
763+
PYR-1, WHP-1..4, L4 doc-lock); no kill condition weakened.

.claude/knowledge/pr-x12-h268-morton-wgpu-synergies.md

Lines changed: 212 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,213 @@ any float-path GPU bit-exactness claim.
115115
| Plan E bench | bits/Gaussian on Mip-NeRF 360 | ≤4 bits | R-10 re-derived; web-streaming claim withdrawn |
116116
| a2ui N2 | wgpu `webgl` feature + texture upload, wasm32-tested | render parity headless vs browser | GPU raster tier deferred; CPU raster only |
117117

118-
## 6. Cross-references
118+
## 7. Comma closure — the replayable irrational (constants correction folded in)
119+
120+
The Pythagorean comma is the residue of a stack of pure fifths that never
121+
closes back onto the octave; a piano tuner's real-world dodge (equal
122+
temperament) trades exactness for closure. Fujifilm's X-Trans sensor
123+
generalizes the same move spatially: its non-repeating 6×6 pixel arrangement
124+
is deliberately incommensurate with common demosaic/moiré periods, so the
125+
anti-aliasing filter can be thinned or dropped. Both are the same design
126+
pattern: **a generator that does not resonate with the sampling lattice
127+
avoids the periodic beat pattern (the comma) that a resonant generator
128+
produces.**
129+
130+
This workspace's surrogate for "a generator that never resonates" is a
131+
**coprime-integer walk**, not an irrational number: helix `CurveRuler`'s
132+
stride-4-over-17 (`constants.rs`: `MODULUS = 17`, `STRIDE = 4`,
133+
`gcd(4, 17) = 1` → the walk visits all 17 residues before repeating — a full
134+
permutation, tested). The banned alternative — a naive Fibonacci-mod-17
135+
stepper — is rejected because it misses the residue set `{6, 7, 10, 11}`: a
136+
resonant generator, the comma made concrete. Base17 reuses the identical
137+
trick vertically (same coprime-walk discipline, orthogonal axis).
138+
139+
**D-QUANTGATE rationale — restated, correcting an over-attribution.** The
140+
integer walk is canon for the quantized/GPU layer for three real reasons,
141+
not the single one this doc previously implied:
142+
143+
1. **libm non-portability** — transcendental math (`sin`/`cos`/`exp`/…) is
144+
not guaranteed bit-identical across libm implementations (receipt: the
145+
2026-07-06 ndarray blackboard libm-fma cliff entry).
146+
2. **WGSL/GPU floats are not IEEE-pinned** — shader float semantics vary by
147+
driver/backend (the C9 verdict, §3 row 9 above).
148+
3. **Bijective closure** — a quantized float-Weyl (golden-ratio) walk does
149+
not *guarantee* a permutation of the quantized residue set; the coprime
150+
integer walk does, by construction (`gcd(STRIDE, MODULUS) = 1`).
151+
152+
**What is explicitly withdrawn:** the rationale "float constants round
153+
differently [across targets]" does NOT hold on the CPU/wasm surface this
154+
workspace actually ships on. Verified this session:
155+
- `std::f64::consts::GOLDEN_RATIO` and `std::f64::consts::EULER_GAMMA` exist
156+
and compile on the pinned 1.94/1.95 toolchain, with fixed bit patterns
157+
`φ = 0x3FF9E3779B97F4A8`, `γ = 0x3FE2788CFC6FB619` — not target-dependent.
158+
- There is **no** `std::simd::const::*` path — helix `constants.rs:17-23`
159+
documents that exact (previously-assumed) API does not exist.
160+
- `gemm_f64_tiled`'s five-backend contract is **unfused, bit-identical**
161+
across all five backends when accumulation order is pinned, and this is
162+
covered by the wasm parity CI — plain IEEE basic ops in a fixed order are
163+
NOT a source of cross-target drift on this surface.
164+
165+
So the real fence is libm + GPU-float + bijectivity, not "floats are
166+
unportable" as a blanket claim.
167+
168+
**Division of labor (already encoded in canon, now stated as a rule):**
169+
170+
| Role | Owner | Domain |
171+
|---|---|---|
172+
| **φ PLACES** | `helix::constants` irrational f64 math | CPU/wasm-replayable placement (golden-ratio spacing) |
173+
| **walk QUANTIZES** | `CurveRuler` coprime integer stride | quantized/GPU/checksum layer, guaranteed bijective |
174+
| **γ CORRECTS** | `EULER_GAMMA`-anchored correction term | drift correction on the placed value |
175+
176+
**Contrast with prior art:** x264's psy-optimized dither is an unspecified
177+
implementation detail (not part of the bitstream spec, not replayable
178+
across encoders); AV1's film-grain synthesis is parameterized and seeded,
179+
but the seed/PRNG state is bookkeeping the decoder must carry. This
180+
workspace's phase is **address-derived** — no seed to carry, no PRNG state,
181+
replayable and checksummable from the address alone. This positioning is
182+
**[H]** until the OGAR probes (PHASE-1, PERT-RHO, PYR-1) run; the J2
183+
falsification fence (dither-grade, not content-grade, until proven) is
184+
unchanged by this section.
185+
186+
## 8. The 96-bit facet carving (48 CAM-PQ + 24 helix + 24 turbovec = the V3 12-byte payload)
187+
188+
Three independently-shipped lane widths, verified this session:
189+
190+
| Lane | Width | Shape | Source | Receipt |
191+
|---|---|---|---|---|
192+
| CAM-PQ basin code | 48 bit | 6 × 8-bit subspace codes | ndarray | `cam_pq.rs:3-12` |
193+
| helix `ResidueEdge` | 24 bit | unsigned hemisphere | lance-graph `helix` | `residue.rs:23-107` |
194+
| helix `Signed360` | 48 bit | signed full-sphere (polar-byte hemisphere partition) | lance-graph `helix` | `residue.rs:23-107` |
195+
| turbovec Lloyd-Max | 24 bit | 6 × 4-bit refinement nibbles | lance-graph-turbovec | `lib.rs` |
196+
197+
**48 (CAM-PQ) + 24 (helix `ResidueEdge`) + 24 (turbovec) = 96 bit — exactly
198+
the V3 content-blind 12-byte payload** (`classid(4B) + 12-byte payload`,
199+
per the operator-locked `E-V3-FACET-4-PLUS-12` ruling). A legal carving of
200+
that payload: `classid(4B) + [CAM-PQ 6B basin | helix 3B residue location |
201+
turbovec 3B refinement nibbles]`. **`ClassView` is the carving/LUT
202+
selector** — which lane a given classid's ClassView routes a read through
203+
(CAM-PQ table, helix residue table, or turbovec codebook) is a property of
204+
the class, not the bytes; the 12-byte register itself stays dumb and
205+
content-blind, consistent with the V3 "content-blind facet" doctrine.
206+
207+
**Budget constraint:** `Signed360` (48 bit / 6 bytes on its own) does
208+
**not** fit alongside both of the other two lanes inside one 96-bit/12-byte
209+
row — it is the **out-of-row / alternate-carving variant**, selected
210+
instead of (not in addition to) the `ResidueEdge` + turbovec pairing when
211+
full-sphere signed precision is needed.
212+
213+
**6×256² clarification (do not conflate the two table families):** the "six
214+
256×256 tables" belong to **CAM-PQ** — 6 subspaces × one 256×256 u16
215+
distance table each = 6 × 64 KB = **384 KB**, closely matching the measured
216+
388 KB `SpoDistanceMatrices` benchmark footprint (§1 above). **bgz17's
217+
palette layer is a different, smaller shape**: one 256×256 u16 distance
218+
table **plus** a k×k u8 compose table, per palette — not six tables. The
219+
two families share the "256×256 dense LUT, texture-isomorphic" shape
220+
(§3 row 2 above) but are not the same object and their sizes should not be
221+
added together.
222+
223+
## 9. The kernel-shape rule (engine follows operation shape)
224+
225+
The rule: **match the compute engine to the shape of the operation, not to
226+
the platform.** Matmul-shaped stages (motion estimation / SSD, batched
227+
DCT, GEMM scoring) belong on VNNI/AMX tile-matmul engines; lookup-shaped
228+
stages (codebook gather, distance-table lookup, palette compose) belong on
229+
LUT engines — SIMD nibble-gather on CPU, texture fetch on GPU. Running a
230+
lookup-shaped stage through a matmul engine (or vice versa) is a shape
231+
mismatch, not merely a suboptimal choice.
232+
233+
**Measured receipt (FINDING — it is measured, not projected):** turbovec's
234+
`NativeLut` path is **11.4× faster** than the VPDPBUSD GEMM polyfill it
235+
replaces, at n = 20,000 / dim = 512 / 4-bit quantization. AMX/VNNI
236+
tile-matmul accelerates exactly the operation TurboQuant's LUT path
237+
removed — running a lookup through a GEMM polyfill pays a real, measured
238+
tax.
239+
240+
**ITU-implementability claim — scoped precisely, not generally:** the
241+
workspace's W1a pattern (one source, five bit-identical backends —
242+
AVX-512/AVX2/NEON/wasm-SIMD128/scalar) covers **any ITU codec's compute
243+
kernels** — the matmul-shaped and lookup-shaped arithmetic stages. It does
244+
**not** cover: CABAC's serial per-bit context chain (an inherently
245+
sequential state machine, not a kernel), conformance-suite corner cases,
246+
or ECM-scale tool counts (dozens of interacting coding tools, each with
247+
its own combinatorial interaction surface). The claim is about kernel
248+
portability, not codec-complexity parity.
249+
250+
**Encode/decode asymmetry — endorsed with existing caveats:** encode-side
251+
work on AVX-512/VNNI (server-class, matmul-shaped: motion search, RDO)
252+
paired with decode-side work on wgpu/WebGL (browser-class, lookup-shaped:
253+
LUT/texture fetch) is a coherent split under the kernel-shape rule. This
254+
carries the **C5/C9 caveats already established elsewhere in this doc
255+
set**: the wgpu tier is roadmap, not shipped (§1 "wgpu in the workspace"
256+
row; a2ui-paint only, no textures/bind groups, `webgl` feature off); and
257+
GPU bit-exactness is only claimed for the **integer** path (§3 row 9) —
258+
float EWA/shading stays outside all bit-exactness claims.
259+
260+
## 10. Replayable-tile synergies — H.268 × cognitive shaders
261+
262+
The shared object across both domains: a **4×4 Morton tile** — 2-bit x ⊗
263+
2-bit y address — where the phase (sign) at every cell is a deterministic
264+
function of its address via the bijective coprime walk (§7), and the only
265+
bytes actually stored are magnitudes. Same object, two consumers.
266+
267+
**H.268 consequences:**
268+
- **(a) Anti-CABAC random access** — no serial phase state to carry, so a
269+
decoder can seek directly into a tile without replaying a bitstream
270+
prefix; strengthens the C4 path once A8 (region-addressable stream
271+
framing) lands.
272+
- **(b) Seekable grain** — unlike AV1's seeded film-grain synthesis
273+
(decoder must carry PRNG/seed bookkeeping), the integer walk regenerates
274+
identically from the address alone and survives a WGSL port per the C9
275+
verdict (§3 row 9).
276+
- **(c) Conformance = the period-permutation self-test** — a decoder can
277+
verify its own phase generator by checking the walk visits all
278+
`MODULUS` residues before repeating (the same test that caught the
279+
banned Fibonacci-mod-17 generator in §7); any reconstruction error
280+
localizes to the stored magnitudes, never to phase.
281+
- **(d) Parallelism** — 16 cells map to one SIMD lane group or one wgpu
282+
workgroup tile. This is **native to the H.268 scene codec** (the C6
283+
correction: 4×4 is native to the 3DGS/scene codec, NOT the
284+
HEVC-compatibility lane, which keeps its own 8×8/64×64 CTU/leaf sizes).
285+
286+
**Cognitive-shader consequences (the larger half):**
287+
- **(e) RNG-free exploration** — phase is a pure function of position, so
288+
this deletes the last shared-mutable-state candidate from the thinking
289+
loop (composes with `E-NOBODY-WAITS-1`).
290+
- **(f) Replayable thinking = auditable cognition** — combined with
291+
temporal-stream replayability (`E-MARKOV-TEMPORAL-STREAM-1`), a full
292+
trajectory including exploration noise re-runs bit-exactly;
293+
counterfactual replay therefore stores **zero** exploration state.
294+
- **(g) Anti-confabulation = anti-moiré in concept space** — a coprime
295+
probe schedule is decorrelated from the palette lattice by construction;
296+
a *known* period-17 dependence structure is friendlier to
297+
`I-NOISE-FLOOR-JIRAK`'s weak-dependence analysis than an *unknown* PRNG
298+
correlation structure would be.
299+
- **(h) Exact phase-side unbinding** — sign is recomputable per address
300+
with no cleanup codebook needed; a cleanup codebook is only needed for
301+
magnitudes. The two-algebra rule (sign = XOR, magnitude = `vsa_bundle`,
302+
never mixed) stays intact.
303+
- **(i) Cache-native working set** — one 4×4 tile is 16 cells × 2 bytes ×
304+
6 lanes = 192 bytes = 3 cache lines. The L4 substrate is flat Morton SoA
305+
by ruling; the C1 arena-tree corrective (§3 row 1: the shipped `ctu.rs`
306+
is a pointer arena, not Morton-flat) applies to the **codec CTU**, not
307+
to the L4 substrate — the two do not contradict each other.
308+
309+
**The four-role loop:** **φ PLACES → walk QUANTIZES → γ CORRECTS → F
310+
DECIDES.** λ-RDO (rate-distortion optimization, the codec's tile-local
311+
encode decision) and free-energy dispatch (the cognitive shader's
312+
tile-local think/commit decision) are the same tile-local decision
313+
procedure running over the same replayable substrate — one loop, two
314+
consumers.
315+
316+
**Honesty ledger — everything above stays conditional on the standing
317+
probe queue:** D-MTS-1..3, PHASE-1/PERT-RHO/PYR-1 (with the J2 dither-only
318+
fence unchanged), WHP-1..4, and the L4 tenant assignment (doc-locked, not
319+
code-verified). No kill condition in §5 above is weakened or
320+
reinterpreted by this section — it names a shared object and its
321+
consequences *if* the probe queue passes; nothing here promotes a
322+
probe-gated claim to shipped.
323+
324+
## 11. Cross-references
119325

120326
- `pr-x12-h266-h267-standards-landscape.md` — the industry walls, sourced
121327
- `pr-x12-x266-3dgs-spacetime-upscaling.md` — the H.268 lens body (+ §12)
@@ -126,4 +332,8 @@ any float-path GPU bit-exactness claim.
126332
table sources; a2ui-rs `a2ui-paint` (the only wgpu in the workspace)
127333

128334
_Last edit: 2026-07-16. Verdicts from workflow run wf_6c6fb99a-cb4 (15 agents,
129-
whole-file receipts; journal retained in session transcript dir)._
335+
whole-file receipts; journal retained in session transcript dir). §7-§10
336+
addendum (comma closure, 96-bit facet carving, kernel-shape rule,
337+
replayable-tile synergies) added 2026-07-16 per
338+
`.claude/plans/H268-comma-96bit-replayable-addendum-v1.md`; §6 renumbered
339+
to §11._

0 commit comments

Comments
 (0)