code wiki / _hdl_build / nx_jpeg_color_write_gate.nx

nx_jpeg_color_write_gate.nx

buildroot/runtime/_hdl_build/nx_jpeg_color_write_gate.nx

8439 B146 linesdepth 7pulls 11 transitivereach 0 importersview sourcekind gate/prooftopic jpeg
docsdependenciesstructsconstsfunctions

about

nx_jpeg_color_write_gate.nx -- SOVEREIGN gate for the baseline COLOR JFIF writer. Encodes a synthetic RGB image to a real .jpg (/mnt/c/Users/elder/nishi_color_test.jpg), then validates WITHOUT python/3rd-party: T1 SOI+EOI; T2 marker walk -> SOS + SOF0 dims + 3 components; T3 two DQT + DHT present; T4 entropy round-trip (un-stuff, decode the interleaved Y/Cb/Cr MCUs with our own jbe_decode_block, dequant+IDCT, YCbCr->RGB, reconstruct -> faithful); T5 the .jpg compresses below raw RGB; T6 file landed. GREEN iff 6/6. license_tier: ORIGINAL

dependencies 10 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_color_write.nx nx_jpeg_color_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.nxnx_jpeg_color_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 clamp8 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_qt_chroma sys_mmap ↻ _qt_chroma_base _qt_quality_to_scale ↻ _qt_scale ↻ nx_zigzag_init nx_dct8_init jcw_write_color sys_mmap ↻ jcw_y jcw_cb jcw_cr jw_b jw_u16 bw_init jcw_block 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

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 iabs(v: i64) -> i64 { if v<0 { return 0-v } return v }
called by 1: main
20func clamp8(v: i64) -> i64 { if v<0 { return 0 } if v>255 { return 255 } return v }
called by 1: main
21func u16b(b: *u8, o: i64) -> i64 { return ((b[o] as i64)<<8) | (b[o+1] as i64) }
called by 1: main
23func main() -> i64