CKey optical benchmark (synthetic)
Generated by ckey-bench --quick with core 0.1.0-build.64. Synthetic frames, not real-camera measurements. Frames are 960×720 px with clutter; sides include each symbology's quiet zone, so symbols are compared at equal area. 4 trials per cell.
| Condition | blur σ px | noise σ | rotation | keystone | glare |
|---|---|---|---|---|---|
| clean | 0 | 0.01 | 0° | 0% | 0 |
| camera | 1 | 0.03 | 15° | 6% | 0.15 |
| hard | 1.8 | 0.06 | 30° | 10% | 0.3 |
CKey P0 (M)
| Payload | Condition | Smallest side ≥ 90% | Bytes per 1,000 px² | Success by side (px) | Mean RS bytes corrected | Latency p50 / p90 / p99 ms |
|---|---|---|---|---|---|---|
| 33 B | clean | 140 px | 1.68 | 70:0% 100:0% 140:100% 200:100% 280:100% | 0.1 | 25.7 / 36.3 / 148.1 |
| 33 B | camera | 200 px | 0.82 | 70:0% 100:0% 140:0% 200:100% 280:100% | 0.9 | 28.1 / 44.9 / 70.0 |
| 33 B | hard | none | – | 70:0% 100:0% 140:0% 200:0% 280:75% | 7.0 | 36.6 / 58.4 / 85.1 |
| 120 B | clean | 140 px | 6.12 | 70:0% 100:0% 140:100% 200:100% 280:100% | 8.0 | 27.6 / 30.3 / 35.7 |
| 120 B | camera | 280 px | 1.53 | 70:0% 100:0% 140:0% 200:0% 280:100% | 5.5 | 29.6 / 45.6 / 55.3 |
| 120 B | hard | none | – | 70:0% 100:0% 140:0% 200:0% 280:0% | 0.0 | 39.6 / 60.1 / 70.3 |
False positives on 60 symbol-free clutter frames: 0 (scan latency p50 / p99 9.5 / 39.5 ms).
QR Code and Data Matrix columns need zxing-cpp: configure with -DCKEY_BENCH_ZXING=ON (CI's benchmarks job does).