code wiki / _hdl_build / nx_jpeg_huff_enc_gate.nx

nx_jpeg_huff_enc_gate.nx source

↩ module page · 99 lines · 6123 B

1// nx_jpeg_huff_enc_gate.nx -- SOVEREIGN liar-kill gate for nx_jpeg_huff_enc (J1 of the sovereign JPEG 2// encoder). Proves the standard Annex-K luma Huffman ENCODE substrate with no python and no 3rd-party 3// reference: KATs against the KNOWN canonical codes (luma DC cat0="00", DC cat6="1110", AC EOB="1010"), 4// the magnitude-category math, and an encode->decode ROUND-TRIP through a canonical decoder built right 5// here (= the sovereign oracle). + a corruption liar-kill. GREEN iff 6/6. knowledge/status/jpeg_huff_enc_gate.log. 6// license_tier: ORIGINAL 7import "nx_syscalls.nx" 8import "nx_gate_emit_lib.nx" 9import "nx_h264_bitwriter.nx" 10import "nx_jpeg_huff_enc.nx" 11 12func g_num(v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m;sys_write(1,"-" as *u8,1)}; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=(48 as u8);k=1}; while m>0{t[k]=((48+(m%10)) as u8);m=m/10;k=k+1}; var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1}; sys_write(1,bb,k); return 0 } 13func g_w(fd: i64, s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(fd,s,n); return 0 } 14func g_wn(fd: i64, v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=(48 as u8);k=1}; while m>0{t[k]=((48+(m%10)) as u8);m=m/10;k=k+1}; var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1}; sys_write(fd,bb,k); return 0 } 15func read_bit(buf: *u8, pos: *i64) -> i64 { let p: i64=pos[0]; let bit: i64=((buf[p>>3] as i64) >> (7-(p&7))) & 1; pos[0]=p+1; return bit } 16func decode_sym(buf: *u8, pos: *i64, ehufco: *i64, ehufsi: *i64) -> i64 { 17 var acc: i64=0; var nb: i64=0 18 while nb<16 { 19 acc=(acc<<1)|read_bit(buf, pos); nb=nb+1 20 var s: i64=0 21 while s<256 { if ehufsi[s]==nb { if ehufco[s]==acc { return s } } s=s+1 } 22 } 23 return 0-1 24} 25func decode_mag(buf: *u8, pos: *i64, cat: i64) -> i64 { 26 if cat==0 { return 0 } 27 var t: i64=0; var i: i64=0 28 while i<cat { t=(t<<1)|read_bit(buf, pos); i=i+1 } 29 if t < (1<<(cat-1)) { return t - (1<<cat) + 1 } 30 return t 31} 32 33func main() -> i64 { 34 g_puts("=== JPEG HUFF ENC GATE: sovereign Annex-K luma encode substrate (KAT + round-trip) ===\n" as *u8) 35 36 let dcB: *i64=sys_mmap(20*8) as *i64; let dcV: *i64=sys_mmap(20*8) as *i64 37 let acB: *i64=sys_mmap(20*8) as *i64; let acV: *i64=sys_mmap(200*8) as *i64 38 let ndc: i64=jhe_dc_bits(dcB); jhe_dc_val(dcV) 39 let nac: i64=jhe_ac_bits(acB); jhe_ac_val(acV) 40 let dcCO: *i64=sys_mmap(256*8) as *i64; let dcSI: *i64=sys_mmap(256*8) as *i64 41 let acCO: *i64=sys_mmap(256*8) as *i64; let acSI: *i64=sys_mmap(256*8) as *i64 42 let gdc: i64=jhe_gen(dcB, dcV, ndc, dcCO, dcSI) 43 let gac: i64=jhe_gen(acB, acV, nac, acCO, acSI) 44 45 // KAT against known canonical standard codes 46 var t1: i64=0 47 if dcSI[0]==2 { if dcCO[0]==0 { if dcSI[6]==4 { if dcCO[6]==14 { if dcSI[1]==3 { if dcCO[1]==2 { t1=1 } } } } } } 48 var t2: i64=0 49 if acSI[0]==4 { if acCO[0]==10 { if gdc==12 { if gac==162 { t2=1 } } } } // EOB(0x00)=1010, table sizes 50 var t3: i64=0 51 if jhe_mag_cat(0)==0 { if jhe_mag_cat(1)==1 { if jhe_mag_cat(0-1)==1 { if jhe_mag_cat(255)==8 { if jhe_mag_cat(0-255)==8 { t3=1 } } } } } 52 53 // ROUND-TRIP: encode DC diff=5, AC (0,-3),(2,1),EOB ; decode back through the canonical oracle 54 let buf: *u8=sys_mmap(256) 55 let bw: *BitWriter=sys_mmap(64) as *BitWriter 56 bw_init(bw, buf, 256) 57 jhe_emit_dc(bw, dcCO, dcSI, 5) 58 jhe_emit_ac(bw, acCO, acSI, 0, 0-3) 59 jhe_emit_ac(bw, acCO, acSI, 2, 1) 60 jhe_emit_ac(bw, acCO, acSI, 0, 0) 61 let pos: *i64=sys_mmap(8) as *i64; pos[0]=0 62 let dcat: i64=decode_sym(buf, pos, dcCO, dcSI) 63 let dval: i64=decode_mag(buf, pos, dcat) 64 let a1: i64=decode_sym(buf, pos, acCO, acSI); let a1v: i64=decode_mag(buf, pos, a1 & 0xf) 65 let a2: i64=decode_sym(buf, pos, acCO, acSI); let a2v: i64=decode_mag(buf, pos, a2 & 0xf) 66 let a3: i64=decode_sym(buf, pos, acCO, acSI) 67 var t4: i64=0 68 if dval==5 { if a1==0x02 { if a1v==(0-3) { if a2==0x21 { if a2v==1 { if a3==0x00 { t4=1 } } } } } } 69 70 g_puts("-- round-trip: DC=" as *u8); g_num(dval); g_puts(" AC1=(r" as *u8); g_num(a1>>4); g_puts(",v" as *u8); g_num(a1v) 71 g_puts(") AC2=(r" as *u8); g_num(a2>>4); g_puts(",v" as *u8); g_num(a2v); g_puts(") EOB=" as *u8); g_num(a3); g_puts("\n" as *u8) 72 73 var t5: i64=0; if dval==5 { if a1v==(0-3) { if a2v==1 { t5=1 } } } // values reconstructed exactly 74 75 // LIAR-KILL: corrupt a mid bit, decode, confirm the sequence diverges from the clean one 76 let buf2: *u8=sys_mmap(256) 77 var i: i64=0; while i<256 { buf2[i]=buf[i]; i=i+1 } 78 // flip stream bit 0 (= MSB of byte 0 = the DC code's first bit) -> the DC symbol must mis-decode 79 let b0: i64=buf2[0] as i64 80 if b0>=128 { buf2[0]=(b0-128) as u8 } else { buf2[0]=(b0+128) as u8 } 81 let pos2: *i64=sys_mmap(8) as *i64; pos2[0]=0 82 let c1: i64=decode_sym(buf2, pos2, dcCO, dcSI) 83 let cv: i64=decode_mag(buf2, pos2, c1) 84 var t6: i64=0; if cv!=5 { t6=1 } 85 86 var pass: i64=0; let rows: i64=6 87 pass=pass+g_check(" T1 DC canonical KAT (cat0=00, cat6=1110, cat1=010)" as *u8, t1) 88 pass=pass+g_check(" T2 AC canonical KAT (EOB=1010) + table sizes 12/162" as *u8, t2) 89 pass=pass+g_check(" T3 magnitude-category math" as *u8, t3) 90 pass=pass+g_check(" T4 encode->decode round-trip exact (DC + 3 AC syms)" as *u8, t4) 91 pass=pass+g_check(" T5 sign-magnitude values reconstructed exactly" as *u8, t5) 92 pass=pass+g_check(" T6 liar-kill: corrupted stream diverges" as *u8, t6) 93 94 g_puts("----\nJHENC rows=" as *u8); g_num(rows); g_puts(" pass=" as *u8); g_num(pass); g_puts("\n" as *u8) 95 let lg: i64=sys_openat_append("knowledge/status/jpeg_huff_enc_gate.log" as *u8, 0x1a4) 96 if lg>=0 { g_w(lg, "JHENC rows=" as *u8); g_wn(lg, rows); g_w(lg, " pass=" as *u8); g_wn(lg, pass); if pass==rows { g_w(lg, " verdict=GREEN\n" as *u8) } else { g_w(lg, " verdict=RED\n" as *u8) } sys_close(lg) } 97 if pass==rows { g_puts("JHENC GREEN (sovereign JPEG Huffman encode substrate proven, round-trip)\n" as *u8); sys_exit(0); return 0 } 98 g_puts("JHENC RED\n" as *u8); sys_exit(1); return 1 99}