nx_av1_txfm2d_gate.nx
buildroot/runtime/nx_av1_txfm2d_gate.nx
about
nx_av1_txfm2d_gate.nx -- proves the 16 2-D transform types are a BIJECTION
onto the 4x4 grid of 1-D kinds, and that FLIPADST really flips.
T1 IS THE HEADLINE. AOMedia's own AV2 overview says AV2 reuses "four primary
1-D transform types producing 16 2-D combinations" from AV1 unchanged. That
sentence is a testable claim, so it is tested: build a 4x4 occupancy grid
from (col_kind, row_kind) over all sixteen types and assert every cell is hit
EXACTLY once. Any single mis-assignment double-books one cell and empties
another, so the check catches a one-type error, not just gross breakage.
T3 pins the AV1 naming convention -- first token is the COLUMN. Swapping it
yields a transposed error that decodes cleanly on symmetric content and only
shows on directional detail, which is the worst kind of bug to ship.
T5/T6 are non-vacuity: an unknown type must return -1 rather than defaulting
to DCT, and the 1-D dispatcher must REPORT that it did nothing rather than
quietly leaving a plausible block behind.
license_tier: ORIGINAL
dependencies 5 imports · 0 importers
imports: nx_syscalls.nxnx_av1_txfm.nxnx_av1_dct.nxnx_av1_adst.nxnx_av1_txfm2d.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| none |
functions
| 26 | func g_puts(s: *u8) -> i64 |
| 33 | func g_putn(v: i64) -> i64 |
| 47 | func main() -> i64 |