code wiki / (root) / nx_av1_txfm2d_gate.nx

nx_av1_txfm2d_gate.nx

buildroot/runtime/nx_av1_txfm2d_gate.nx

8397 B189 linesdepth 5pulls 6 transitivereach 0 importersview sourcekind gate/prooftopic av1
docsdependenciesstructsconstsfunctions

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

nx_syscalls.nx nx_av1_txfm.nx nx_av1_dct.nx nx_av1_adst.nx nx_av1_txfm2d.nx nx_av1_txfm2d_gate.nx

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

main sys_mmap nx_av1_cos_table nx_av1_tx2d_col_kind nx_av1_tx2d_row_kind nx_av1_iadst4 nx_av1_round2 nx_av1_iflipadst4 sys_mmap ↻ nx_av1_iadst4 ↻ nx_av1_itx_identity4 nx_av1_round2 ↻ nx_av1_itx1d_4 nx_av1_idct4 nx_av1_cos128 nx_av1_round2 ↻ nx_av1_iadst4 ↻ nx_av1_iflipadst4 ↻ nx_av1_itx_identity4 ↻ g_puts sys_write sys_exit g_putn sys_mmap ↻ g_puts ↻ sys_write ↻

structs

none

consts

none

functions

26func g_puts(s: *u8) -> i64
called by 2: g_putnmain calls 1: sys_write
33func g_putn(v: i64) -> i64
called by 1: main calls 3: sys_mmapg_putssys_write
47func main() -> i64