Repository navigation
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.

| 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, ¶ms) / _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).
β 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.
Open Ingenic camera stack
- Home
- Supported SoCs and Sensors
- Per-SoC Status
- Feature Matrix
- Architecture
- Building
- Installing and Switching
- Module Parameters
- Environment Variables
- Beyond the Vendor
- Memory
- Troubleshooting
- Testing
- Test Pattern
- Performance
- Changelog
- Release Scheme
Current: RC1 (v2026.10.11-rc1)