Skip to content

Commit 61c59d0

Browse files
authored
Merge pull request #243 from AdaWorldAPI/claude/x265-x266-plans-review-h9osnl
docs: H.268 addendum §7-§10 — comma closure, 96-bit facet carving, kernel-shape rule, replayable-tile synergies
2 parents b66ddbd + 02ff42f commit 61c59d0

3 files changed

Lines changed: 438 additions & 2 deletions

File tree

.claude/blackboard.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,3 +730,42 @@ 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. Three flavours
753+
of 256 (post-review correction + operator refinement): CAM-PQ =
754+
6×256² compressed to per-query 6×256 f32 ADC rows (6KB,
755+
`cam_pq.rs:76-84`); bgz17 = the explicit materialized 256² u16 (+ k×k
756+
u8 compose; 388KB benchmark = 3 S/P/O planes × 128KB); V3 facet =
757+
explicit 6×256² as codec-agnostic ADDRESS (6×(u8:u8) rails = 96 bit;
758+
classid→ClassView switches which codec's 256² family each rail
759+
indexes).
760+
- **§9 kernel-shape rule:** VNNI/AMX for matmul-shaped ops, LUT/texture
761+
for lookup-shaped ops — turbovec NativeLut measured **11.4×** faster
762+
than the VPDPBUSD GEMM polyfill (n=20k/dim=512/4-bit, FINDING). ITU
763+
claim scoped to compute kernels only (not CABAC/conformance/ECM count).
764+
- **§10 replayable-tile synergies:** 4×4 Morton tile as the shared
765+
object between H.268 (phase-side seekability — entropy-level seek
766+
still A8-gated; seekable grain; C6-scoped native tiling) and cognitive
767+
shaders (RNG-free exploration, replayable thinking on the CPU/wasm
768+
integer path, anti-confabulation [H, needs correlation-spectrum
769+
probe], cache-native 192B working set) — all nine consequences stay
770+
**probe-gated** (D-MTS-1..3, PHASE-1/PERT-RHO/PYR-1, WHP-1..4, L4
771+
doc-lock); no kill condition weakened.

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

Lines changed: 261 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,262 @@ 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 6×6 colour-filter tile — repeating,
124+
but far less regular than Bayer's 2×2 (a larger period with a quasi-random
125+
arrangement inside the tile) — is deliberately less commensurate with common
126+
demosaic/moiré periods, so the anti-aliasing filter can be thinned or
127+
dropped. Both are the same design
128+
pattern: **a generator that does not resonate with the sampling lattice
129+
avoids the periodic beat pattern (the comma) that a resonant generator
130+
produces.**
131+
132+
This workspace's surrogate for "a generator that never resonates" is a
133+
**coprime-integer walk**, not an irrational number: helix `CurveRuler`'s
134+
stride-4-over-17 (`constants.rs`: `MODULUS = 17`, `STRIDE = 4`,
135+
`gcd(4, 17) = 1` → the walk visits all 17 residues before repeating — a full
136+
permutation, tested). The banned alternative — a naive Fibonacci-mod-17
137+
stepper — is rejected because it misses the residue set `{6, 7, 10, 11}`: a
138+
resonant generator, the comma made concrete. Base17 reuses the identical
139+
trick vertically (same coprime-walk discipline, orthogonal axis).
140+
141+
**D-QUANTGATE rationale — restated, correcting an over-attribution.** The
142+
integer walk is canon for the quantized/GPU layer for three real reasons,
143+
not the single one this doc previously implied:
144+
145+
1. **libm non-portability** — transcendental math (`sin`/`cos`/`exp`/…) is
146+
not guaranteed bit-identical across libm implementations (receipt: the
147+
2026-07-06 ndarray blackboard libm-fma cliff entry).
148+
2. **WGSL/GPU floats are not IEEE-pinned** — shader float semantics vary by
149+
driver/backend (the C9 verdict, §3 row 9 above).
150+
3. **Bijective closure** — a quantized float-Weyl (golden-ratio) walk does
151+
not *guarantee* a permutation of the quantized residue set; the coprime
152+
integer walk does, by construction (`gcd(STRIDE, MODULUS) = 1`).
153+
154+
**What is explicitly withdrawn:** the rationale "float constants round
155+
differently [across targets]" does NOT hold on the CPU/wasm surface this
156+
workspace actually ships on. Verified this session:
157+
- `std::f64::consts::GOLDEN_RATIO` and `std::f64::consts::EULER_GAMMA` exist
158+
and compile on the pinned 1.94/1.95 toolchain, with fixed bit patterns
159+
`φ = 0x3FF9E3779B97F4A8`, `γ = 0x3FE2788CFC6FB619` — not target-dependent.
160+
- There is **no** std-SIMD const-constants path — helix `constants.rs:17-23`
161+
documents that the previously-assumed `const::simd::*`-style API does not
162+
exist; the canonical source is `std::f64::consts`.
163+
- `gemm_f64_tiled`'s five-backend contract is **unfused, bit-identical**
164+
across all five backends when accumulation order is pinned, and this is
165+
covered by the wasm parity CI — plain IEEE basic ops in a fixed order are
166+
NOT a source of cross-target drift on this surface.
167+
168+
So the real fence is libm + GPU-float + bijectivity, not "floats are
169+
unportable" as a blanket claim.
170+
171+
**Division of labor (already encoded in canon, now stated as a rule):**
172+
173+
| Role | Owner | Domain |
174+
|---|---|---|
175+
| **φ PLACES** | `helix::constants` irrational f64 math | CPU/wasm-replayable placement (golden-ratio spacing) |
176+
| **walk QUANTIZES** | `CurveRuler` coprime integer stride | quantized/GPU/checksum layer, guaranteed bijective |
177+
| **γ CORRECTS** | `EULER_GAMMA`-anchored correction term | drift correction on the placed value |
178+
179+
**Contrast with prior art:** x264's psy-optimized dither is an unspecified
180+
implementation detail (not part of the bitstream spec, not replayable
181+
across encoders); AV1's film-grain synthesis is parameterized and seeded,
182+
but the seed/PRNG state is bookkeeping the decoder must carry. This
183+
workspace's phase is **address-derived** — no seed to carry, no PRNG state,
184+
replayable and checksummable from the address alone. This positioning is
185+
**[H]** until the OGAR probes (PHASE-1, PERT-RHO, PYR-1) run; the J2
186+
falsification fence (dither-grade, not content-grade, until proven) is
187+
unchanged by this section.
188+
189+
## 8. The 96-bit facet carving (48 CAM-PQ + 24 helix + 24 turbovec = the V3 12-byte payload)
190+
191+
Three independently-shipped lane widths, verified this session:
192+
193+
| Lane | Width | Shape | Source | Receipt |
194+
|---|---|---|---|---|
195+
| CAM-PQ basin code | 48 bit | 6 × 8-bit subspace codes | ndarray | `cam_pq.rs:3-12` |
196+
| helix `ResidueEdge` | 24 bit | unsigned hemisphere | lance-graph `helix` | `residue.rs:23-107` |
197+
| helix `Signed360` | 48 bit | signed full-sphere (polar-byte hemisphere partition) | lance-graph `helix` | `residue.rs:23-107` |
198+
| turbovec Lloyd-Max | 24 bit | 6 × 4-bit refinement nibbles | lance-graph-turbovec | `lib.rs` |
199+
200+
**48 (CAM-PQ) + 24 (helix `ResidueEdge`) + 24 (turbovec) = 96 bit — exactly
201+
the V3 content-blind 12-byte payload** (`classid(4B) + 12-byte payload`,
202+
per the operator-locked `E-V3-FACET-4-PLUS-12` ruling). A legal carving of
203+
that payload: `classid(4B) + [CAM-PQ 6B basin | helix 3B residue location |
204+
turbovec 3B refinement nibbles]`. **`ClassView` is the carving/LUT
205+
selector** — which lane a given classid's ClassView routes a read through
206+
(CAM-PQ table, helix residue table, or turbovec codebook) is a property of
207+
the class, not the bytes; the 12-byte register itself stays dumb and
208+
content-blind, consistent with the V3 "content-blind facet" doctrine.
209+
210+
**Budget constraint:** `Signed360` (48 bit / 6 bytes on its own) does
211+
**not** fit alongside both of the other two lanes inside one 96-bit/12-byte
212+
row — it is the **out-of-row / alternate-carving variant**, selected
213+
instead of (not in addition to) the `ResidueEdge` + turbovec pairing when
214+
full-sphere signed precision is needed.
215+
216+
**Three flavours of 256 (table-family clarification, corrected + refined
217+
2026-07-16 post-review — operator framing):**
218+
- **CAM-PQ — 6×256² compressed to 6×256.** The latent structure is six
219+
per-subspace 256×256 centroid-distance families, but the shipped path
220+
never materializes them: ADC precomputes a **per-query 6×256 f32
221+
row-set** = **6 KB**, L1-resident, recomputed per query
222+
(`cam_pq.rs:76-84`) — the compressed, asymmetric projection of the
223+
latent 6×256². (A symmetric code↔code variant would materialize the
224+
full six tables; the shipped codec does not.)
225+
- **bgz17 — the explicit 256².** One materialized dense 256×256 u16
226+
distance table per palette, **plus** a k×k u8 compose table. The
227+
measured **388 KB `SpoDistanceMatrices` benchmark** (§1 above) is this
228+
flavour on the three S/P/O planes: **3 × (256² u16 = 128 KB) = 384 KB**
229+
(`palette_distance.rs:145-158`).
230+
- **V3 facet — explicit 6×256² as ADDRESS, codec-agnostic.** The 12-byte
231+
content-blind payload read as `6×(u8:u8)` rails = six coordinate pairs
232+
into 256×256 spaces = **96 bits of pure address**. The payload does not
233+
know whose tables its rails index — **`classid → ClassView` selects
234+
which codec's 256² family** (CAM-PQ subspace, bgz17 palette, helix
235+
residue) interprets each rail. See lance-graph `le-contract.md §3` for
236+
the canonical 6×(u8:u8) / 4×(u8:u8:u8) / 3×(u8:u8:u8:u8) readings of
237+
the same register.
238+
The first two are table *footprints* (compressed vs materialized); the
239+
third is the *addressing shape* they are consumed through. None of the
240+
footprints should be added to or substituted for another. (An earlier
241+
draft attributed the 384 KB to "6 × 64 KB CAM-PQ tables" — wrong on both
242+
the arithmetic, a 256² u16 table is 128 KB, and the attribution.)
243+
244+
**Honourable fourth mode (operational, not a footprint): index +
245+
residual.** bgz-tensor's `AdaptiveRow` (`adaptive_codec.rs`) keeps the
246+
palette centroid index as the coarse deterministic PLACE and stores only a
247+
Hadamard-rotated residual (i8 for outlier rows; i4+i2 cascade for regular
248+
rows) — index PLACES, residual CORRECTS. It is the continuous-field exit
249+
where a bare 256-level index terraces (e.g. elevation); categorical
250+
surfaces (`Signed360` normals, narrow colour) stay flat. Out-of-row like
251+
`Signed360`; the in-row refinement budget remains the turbovec nibble
252+
lane. Formal anchor [S]: Hambly–Lyons 2010 signature uniqueness (a
253+
bounded-variation path is determined by its graded iterated-integral
254+
cascade up to tree-like equivalence) — analogy-grade until a
255+
ladder→signature probe exists. Canonical text: lance-graph
256+
`le-contract.md §3` honourable-mention subsection +
257+
`E-PALETTE-RESIDUAL-LADDER-1`.
258+
259+
## 9. The kernel-shape rule (engine follows operation shape)
260+
261+
The rule: **match the compute engine to the shape of the operation, not to
262+
the platform.** Matmul-shaped stages (motion estimation / SSD, batched
263+
DCT, GEMM scoring) belong on VNNI/AMX tile-matmul engines; lookup-shaped
264+
stages (codebook gather, distance-table lookup, palette compose) belong on
265+
LUT engines — SIMD nibble-gather on CPU, texture fetch on GPU. Running a
266+
lookup-shaped stage through a matmul engine (or vice versa) is a shape
267+
mismatch, not merely a suboptimal choice.
268+
269+
**Measured receipt (FINDING — it is measured, not projected):** turbovec's
270+
`NativeLut` path is **11.4× faster** than the VPDPBUSD GEMM polyfill it
271+
replaces, at n = 20,000 / dim = 512 / 4-bit quantization. AMX/VNNI
272+
tile-matmul accelerates exactly the operation TurboQuant's LUT path
273+
removed — running a lookup through a GEMM polyfill pays a real, measured
274+
tax.
275+
276+
**ITU-implementability claim — scoped precisely, not generally:** the
277+
workspace's W1a pattern (one source, five bit-identical backends —
278+
AVX-512/AVX2/NEON/wasm-SIMD128/scalar) covers **any ITU codec's compute
279+
kernels** — the matmul-shaped and lookup-shaped arithmetic stages. It does
280+
**not** cover: CABAC's serial per-bit context chain (an inherently
281+
sequential state machine, not a kernel), conformance-suite corner cases,
282+
or ECM-scale tool counts (dozens of interacting coding tools, each with
283+
its own combinatorial interaction surface). The claim is about kernel
284+
portability, not codec-complexity parity.
285+
286+
**Encode/decode asymmetry — endorsed with existing caveats:** encode-side
287+
work on AVX-512/VNNI (server-class, matmul-shaped: motion search, RDO)
288+
paired with decode-side work on wgpu/WebGL (browser-class, lookup-shaped:
289+
LUT/texture fetch) is a coherent split under the kernel-shape rule. This
290+
carries the **C5/C9 caveats already established elsewhere in this doc
291+
set**: the wgpu tier is roadmap, not shipped (§1 "wgpu in the workspace"
292+
row; a2ui-paint only, no textures/bind groups, `webgl` feature off); and
293+
GPU bit-exactness is only claimed for the **integer** path (§3 row 9) —
294+
float EWA/shading stays outside all bit-exactness claims.
295+
296+
## 10. Replayable-tile synergies — H.268 × cognitive shaders
297+
298+
The shared object across both domains: a **4×4 Morton tile** — 2-bit x ⊗
299+
2-bit y address — where the phase (sign) at every cell is a deterministic
300+
function of its address via the bijective coprime walk (§7), and the only
301+
bytes actually stored are magnitudes. Same object, two consumers.
302+
303+
**H.268 consequences:**
304+
- **(a) Phase-side seekability (the anti-CABAC direction)** — the phase
305+
generator carries no serial state, so the *phase side* of any tile is
306+
reconstructible at any address with no prefix replay. This is NOT by
307+
itself CABAC random access: the entropy-coded magnitudes still carry
308+
CABAC's serial context chain, so bitstream-level seeking additionally
309+
requires independently framed / context-reset regions — which is
310+
precisely what A8 (region-addressable stream framing) provides. The
311+
consequence strengthens the C4 path **only once A8 lands**; until then
312+
it is phase-side seekability only.
313+
- **(b) Seekable grain** — unlike AV1's seeded film-grain synthesis
314+
(decoder must carry PRNG/seed bookkeeping), the integer walk regenerates
315+
identically from the address alone and survives a WGSL port per the C9
316+
verdict (§3 row 9).
317+
- **(c) Conformance = the period-permutation self-test** — a decoder can
318+
verify its own phase generator by checking the walk visits all
319+
`MODULUS` residues before repeating (the same test that caught the
320+
banned Fibonacci-mod-17 generator in §7); any reconstruction error
321+
localizes to the stored magnitudes, never to phase.
322+
- **(d) Parallelism** — 16 cells map to one SIMD lane group or one wgpu
323+
workgroup tile. This is **native to the H.268 scene codec** (the C6
324+
correction: 4×4 is native to the 3DGS/scene codec, NOT the
325+
HEVC-compatibility lane, which keeps its own 8×8/64×64 CTU/leaf sizes).
326+
327+
**Cognitive-shader consequences (the larger half):**
328+
- **(e) RNG-free exploration** — phase is a pure function of position, so
329+
this deletes the last shared-mutable-state candidate from the thinking
330+
loop (composes with `E-NOBODY-WAITS-1`).
331+
- **(f) Replayable thinking = auditable cognition** — combined with
332+
temporal-stream replayability (`E-MARKOV-TEMPORAL-STREAM-1`), a full
333+
trajectory including exploration noise re-runs bit-exactly **on the
334+
proven CPU/wasm integer path** (the pinned-order five-backend contract);
335+
float and GPU stages stay outside the bit-exactness claim per §3 row 9
336+
(the integer-only GPU caveat) unless a deterministic-backend probe is
337+
added. Within that scope, counterfactual replay stores **zero**
338+
exploration state.
339+
- **(g) Anti-confabulation = anti-moiré in concept space [H, probe-gated]**
340+
— a coprime probe schedule is decorrelated from the palette lattice by
341+
construction, and a *known* period-17 dependence structure is plausibly
342+
friendlier to `I-NOISE-FLOOR-JIRAK`'s weak-dependence analysis than an
343+
*unknown* PRNG correlation structure. The "friendlier" half is an
344+
**unverified inference**: the period-17 permutation self-test proves
345+
bijectivity, NOT decorrelation. Promotion to FINDING requires a measured
346+
dependence probe — the walk's correlation spectrum against the palette
347+
lattice vs a PRNG baseline, judged under Jirak weak-dependence rates.
348+
- **(h) Exact phase-side unbinding** — sign is recomputable per address
349+
with no cleanup codebook needed; a cleanup codebook is only needed for
350+
magnitudes. The two-algebra rule (sign = XOR, magnitude = `vsa_bundle`,
351+
never mixed) stays intact.
352+
- **(i) Cache-native working set** — one 4×4 tile is 16 cells × 2 bytes ×
353+
6 lanes = 192 bytes = 3 cache lines. The L4 substrate is flat Morton SoA
354+
by ruling; the C1 arena-tree corrective (§3 row 1: the shipped `ctu.rs`
355+
is a pointer arena, not Morton-flat) applies to the **codec CTU**, not
356+
to the L4 substrate — the two do not contradict each other.
357+
358+
**The four-role loop:** **φ PLACES → walk QUANTIZES → γ CORRECTS → F
359+
DECIDES.** λ-RDO (rate-distortion optimization, the codec's tile-local
360+
encode decision) and free-energy dispatch (the cognitive shader's
361+
tile-local think/commit decision) are the same tile-local decision
362+
procedure running over the same replayable substrate — one loop, two
363+
consumers.
364+
365+
**Honesty ledger — everything above stays conditional on the standing
366+
probe queue:** D-MTS-1..3, PHASE-1/PERT-RHO/PYR-1 (with the J2 dither-only
367+
fence unchanged), WHP-1..4, and the L4 tenant assignment (doc-locked, not
368+
code-verified). No kill condition in §5 above is weakened or
369+
reinterpreted by this section — it names a shared object and its
370+
consequences *if* the probe queue passes; nothing here promotes a
371+
probe-gated claim to shipped.
372+
373+
## 11. Cross-references
119374

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

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

0 commit comments

Comments
 (0)