code wiki / _hdl_build / nx_vsubpel_q_gate.nx

nx_vsubpel_q_gate.nx

buildroot/runtime/_hdl_build/nx_vsubpel_q_gate.nx

3126 B52 linesdepth 3pulls 4 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

about

nx_vsubpel_q_gate.nx -- proves QUARTER-pel motion (nx_vsubpel qp_refine) beats half-pel when content moves by a quarter pixel: half-pel can only land on 0 / 0.5, so a 0.25px shift leaves a residual it can't remove, while quarter-pel lands exactly on 0.25 -> ~zero residual. The H.264/VP9 motion-precision rung past half-pel.

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_gate_emit_lib.nx nx_vsubpel.nx nx_vsubpel_q_gate.nx

imports: nx_syscalls.nxnx_gate_emit_lib.nxnx_vsubpel.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main g_puts sys_write sys_mmap sad_at g_abs qp_pixel qp_refine qp_pixel ↻ g_pn sys_mmap ↻ sys_write ↻ g_check g_puts ↻ sys_exit

structs

none

consts

none

functions

8func g_abs(v: i64) -> i64 { if v < 0 { return 0 - v } return v }
called by 1: sad_at
10func sad_at(cur: *u8, prev: *u8, W: i64, cx: i64, cy: i64, px: i64, py: i64, qx: i64, qy: i64, T: i64) -> i64
called by 1: main calls 2: g_absqp_pixel
17func main() -> i64