code wiki / _hdl_build / nx_jpeg_write_gate.nx

nx_jpeg_write_gate.nx

buildroot/runtime/_hdl_build/nx_jpeg_write_gate.nx

7834 B133 linesdepth 6pulls 10 transitivereach 0 importersview sourcekind gate/prooftopic jpeg
docsdependenciesstructsconstsfunctions

about

nx_jpeg_write_gate.nx -- SOVEREIGN gate for J3 (baseline JFIF writer). Encodes a test image to a real .jpg (written to /mnt/c/Users/elder/nishi_test.jpg so any real JPEG viewer can open it), then validates WITHOUT python / 3rd party: (T1) SOI+EOI framing; (T2) marker walk reaches SOS + SOF0 carries the right dims; (T3) DQT + both DHT tables present; (T4) entropy round-trip -- walk to the scan, un-stuff the 0xFF00 bytes, decode every block with our own jbe_decode_block, dequant+IDCT, reconstruct, and the image comes back faithfully; (T5) the .jpg compresses below raw; (T6) the file landed on disk. GREEN iff 6/6. knowledge/status/jpeg_write_gate.log. license_tier: ORIGINAL

dependencies 9 imports · 0 importers

nx_syscalls.nx nx_gate_emit_lib.nx nx_h264_bitwriter.nx nx_dct8.nx nx_quant_table.nx nx_zigzag.nx nx_jpeg_huff_enc.nx nx_jpeg_block_enc.nx nx_jpeg_write.nx nx_jpeg_write_gate.nx

imports: nx_syscalls.nxnx_gate_emit_lib.nxnx_h264_bitwriter.nxnx_dct8.nxnx_quant_table.nxnx_zigzag.nxnx_jpeg_huff_enc.nxnx_jpeg_block_enc.nxnx_jpeg_write.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 jhe_dc_bits jhe_dc_val jhe_ac_bits jhe_ac_val jhe_gen sys_mmap ↻ nx_qt_luma sys_mmap ↻ _qt_luma_base _qt_quality_to_scale _qt_scale nx_zigzag_init nx_dct8_init jw_write_jpeg jw_b jw_u16 sys_mmap ↻ bw_init nx_dct8_forward_2d nx_dct8_forward_1d jw_qround nx_zigzag_scan jbe_encode_block jhe_emit_dc jhe_mag_cat bw_write_bits bw_write_bit jhe_mag_bits jhe_emit_ac jhe_mag_cat ↻ bw_write_bits ↻ jhe_mag_bits ↻ bw_write_bit ↻ sys_openat_wr sys_write ↻ sys_close

structs

none

consts

none

functions

18func 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 }
called by 1: main calls 2: sys_mmapsys_write
19func 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 }
called by 1: main calls 1: sys_write
20func 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 }
called by 1: main calls 2: sys_mmapsys_write
21func iabs(v: i64) -> i64 { if v<0 { return 0-v } return v }
called by 1: main
22func u16(b: *u8, o: i64) -> i64 { return ((b[o] as i64)<<8) | (b[o+1] as i64) }
called by 1: main
24func main() -> i64