"""Fair k=256 vs k=1024 comparison: k=1024 pays 2-byte indices, so the +2.4 dB it showed earlier may be entirely eaten by the doubled payload. Sweep lam and report the rate-distortion CURVE, then compare at matched KB/s.""" import sys; sys.path.insert(0,'tools/encoder') import vq_hybrid as H, numpy as np S=sys.argv[1] for s in ['00020','00146']: print(f'=== scene {s} ===',flush=True) for k in [256,1024]: m=H.build(f'{S}/fr_{s}',k1=k,k4=k,iters=16) ib=1 if k<=256 else 2 print(f' k={k} ({ib}-byte idx) {"lam":>7}{"PSNR":>8}{"KB/s":>8}{"SKIP":>7}{"V1":>6}{"V4":>6}{"RAW":>6}',flush=True) for lam in [25.,100.,300.,800.,2000.]: e=H.encode(m,lam=lam); r=H.evaluate(m,e) print(f' {"":16}{lam:7.0f}{r["psnr"]:8.2f}{r["kbps"]:8.1f}{r["skip"]:7.1f}{r["v1"]:6.1f}{r["v4"]:6.1f}{r["raw"]:6.1f}',flush=True)