Skip to content

Test Pattern

Lu-Fi edited this page Oct 19, 2026 · 1 revision

Test pattern

OpenIMP can feed a synthetic picture of known content into the pipeline (or switch the sensor's own test pattern on), so encoder, scaler, rotation, JPEG, IVS and ISP can be checked against an ideal picture without a scene. Extension beyond the vendor IMP API, default off, all SoCs.

Logo preview (synthetic)

Mode Picture Covers
0 off -
1 ramp, checkerboard, colour bars, logo after the ISP: scaler, rotation, OSD, encoder, JPEG
2 mode 1 + moving square + frame counter drops, duplicates, reordering, smearing, rate control
3 grey, noise, counter, objects of given size/contrast/speed motion detection (IVS input)
4 the sensor's own test pattern through the whole ISP (AE/AWB hold optional)

Use: OpenIMP_TestPattern_Set(mode, &params) / _Get from openimp_testpattern.h (ABI 1, detect with OpenIMP_Cap_TestPattern), from outside with OPENIMP_TEST_PATTERN_CTL=<socket> and tpctl set <mode> key=value ... (e.g. tpctl set 4 ae_hold=1 awb_hold=1), start value OPENIMP_TEST_PATTERN. timps 1.10.3+ offers it as /control testpattern and WebUI buttons. Host tools compare decoded streams with the ideal picture (PSNR, SSIM, colour bars, counter, position).

Status per SoC

βœ… device-tested, πŸ”§ implemented, untested, ⏳ in progress, ❌ not possible per hardware test, ❓ open

Function T10 T20 T21 T23 T30 T31 T40 T41
Mode 1 pattern βœ… βœ… βœ… βœ… πŸ”§ βœ… βœ… βœ…
Mode 2 moving βœ… πŸ”§ βœ… βœ… πŸ”§ βœ… βœ… πŸ”§
Mode 3 motion test βœ… (objects shown) πŸ”§ βœ… βœ… πŸ”§ βœ… βœ… πŸ”§
Mode 4 sensor pattern πŸ”§ (jxh42) βœ… βœ… (sensor exposure hold) βœ… πŸ”§ πŸ”§ (register by hand βœ…) ⏳ πŸ”§ sc5336 / ❓ gc5603
Own picture before the ISP πŸ”§ Apical TPG βœ… Apical TPG + VIC colour bars (register level) ❌ ❌ πŸ”§ Apical TPG ❌ ❓ ⏳ RAW from DDR

Known limits: static appearing objects in mode 3 are not detected by design (motion v2 ignores them), objects larger than a grid cell (> 60 px at 640x360) are not drawn, jxf23 needs the AE hold, gc5603 has no known pattern register, the motion test has no real sensor noise. Cost: about +8 KB xz on libimp.

Full description: docs/TESTPATTERN.md.

Clone this wiki locally