code wiki / (root) / nx_h264_cdc_tz_gate.nx

nx_h264_cdc_tz_gate.nx source

↩ module page · 83 lines · 3474 B

1// nx_h264_cdc_tz_gate.nx -- REFEREE for chroma-DC total_zeros (2x2). 2// Round-trip every (TotalCoeff 1..3, total_zeros 0..(4-tc)) + anchors + prefix-free per column. 3// Every value PRINTED. stdout + knowledge/status/h264_cdc_tz_gate.log. Exit 0/1. 4// Sovereign: nx_syscalls + nx_h264_bits + nx_h264_bitwriter + nx_h264_total_zeros. 5// license_tier: ORIGINAL 6import "nx_syscalls.nx" 7import "nx_h264_bits.nx" 8import "nx_h264_bitwriter.nx" 9import "nx_h264_total_zeros.nx" 10 11func gp(logfd: i64, s: *u8) -> i64 { 12 var n: i64 = 0 13 while s[n] != (0 as u8) { n = n + 1 } 14 sys_write(1, s, n) 15 if logfd > 0 { sys_write(logfd, s, n) } 16 return 0 17} 18func gn(logfd: i64, v: i64) -> i64 { 19 let bb: *u8 = sys_mmap(28) 20 var m: i64 = v 21 if m < 0 { sys_write(1, "-\x00" as *u8, 1); if logfd > 0 { sys_write(logfd, "-\x00" as *u8, 1) } m = 0 - m } 22 let t: *u8 = sys_mmap(28) 23 var k: i64 = 0 24 if m == 0 { t[0] = 48 as u8; k = 1 } 25 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 26 var i: i64 = 0 27 while i < k { bb[i] = t[k - 1 - i]; i = i + 1 } 28 sys_write(1, bb, k) 29 if logfd > 0 { sys_write(logfd, bb, k) } 30 return 0 31} 32 33func main() -> i64 { 34 let logfd: i64 = sys_openat_append("knowledge/status/h264_cdc_tz_gate.log\x00" as *u8, 0x1a4) 35 gp(logfd, "H264-CDC-TZ-GATE (chroma DC total_zeros)\n\x00" as *u8) 36 var ok: i64 = 1 37 38 // round-trip TC 1..3 39 var tcv: i64 = 1 40 while tcv <= 3 { 41 let maxtz: i64 = 4 - tcv 42 var tz: i64 = 0 43 while tz <= maxtz { 44 let buf: *u8 = sys_mmap(8) 45 let bw: *BitWriter = sys_mmap(NX_BW_BYTES) as *BitWriter 46 bw_init(bw, buf, 8) 47 let e: i64 = nx_total_zeros_encode_cdc(bw, tcv, tz) 48 let br: *BitReader = sys_mmap(NX_BR_BYTES) as *BitReader 49 br_init(br, buf, 8) 50 let got: i64 = nx_total_zeros_decode_cdc(br, tcv) 51 if e != 1 { ok = 0 } 52 if got != tz { ok = 0; gp(logfd, " RT tc=\x00" as *u8); gn(logfd, tcv); gp(logfd, " tz=\x00" as *u8); gn(logfd, tz); gp(logfd, "->\x00" as *u8); gn(logfd, got); gp(logfd, " MISMATCH\n\x00" as *u8) } 53 tz = tz + 1 54 } 55 tcv = tcv + 1 56 } 57 gp(logfd, " round-trip TC1..3 done\n\x00" as *u8) 58 59 // anchors: TC1 tz0->"1"(0x80,1), TC1 tz3->"000"(0x00,3) 60 let b1: *u8 = sys_mmap(8) 61 let w1: *BitWriter = sys_mmap(NX_BW_BYTES) as *BitWriter 62 bw_init(w1, b1, 8); nx_total_zeros_encode_cdc(w1, 1, 0) 63 gp(logfd, " anchor TC1 tz0: byte=\x00" as *u8); gn(logfd, b1[0] as i64); gp(logfd, " bits=\x00" as *u8); gn(logfd, bw_total_bits(w1)); gp(logfd, " (expect 128,1)\n\x00" as *u8) 64 if (b1[0] as i64) != 128 { ok = 0 } 65 if bw_total_bits(w1) != 1 { ok = 0 } 66 let b2: *u8 = sys_mmap(8) 67 let w2: *BitWriter = sys_mmap(NX_BW_BYTES) as *BitWriter 68 bw_init(w2, b2, 8); nx_total_zeros_encode_cdc(w2, 1, 3) 69 gp(logfd, " anchor TC1 tz3: byte=\x00" as *u8); gn(logfd, b2[0] as i64); gp(logfd, " bits=\x00" as *u8); gn(logfd, bw_total_bits(w2)); gp(logfd, " (expect 0,3)\n\x00" as *u8) 70 if (b2[0] as i64) != 0 { ok = 0 } 71 if bw_total_bits(w2) != 3 { ok = 0 } 72 73 if ok == 1 { 74 gp(logfd, "H264-CDC-TZ-GATE result=ALL-PASS verdict=GREEN\n\x00" as *u8) 75 if logfd > 0 { sys_close(logfd) } 76 sys_exit(0) 77 return 0 78 } 79 gp(logfd, "H264-CDC-TZ-GATE result=FAIL verdict=RED\n\x00" as *u8) 80 if logfd > 0 { sys_close(logfd) } 81 sys_exit(1) 82 return 1 83}