-
-
Notifications
You must be signed in to change notification settings - Fork 3
Home
The
apertobranch of opensensor/openimp and opensensor/open-tx-isp is the released open stack.mainis the original author's line and is an ancestor ofaperto. Details: Release Scheme.
OpenIMP is an open implementation of Ingenic's libimp video API (framesource, ISP tuning, encoder, JPEG, OSD, IVS, audio I/O). This wiki documents the whole open stack; the kernel-driver view is in the companion wiki.
The open stack is a replacement for the vendor camera media stack on Ingenic T-series SoCs (T10, T20, T21, T23, T30, T31, T40, T41):
| Component | Replaces | Repository |
|---|---|---|
| open-tx-isp | vendor kernel driver tx-isp-<soc>.ko
|
https://github.com/opensensor/open-tx-isp |
| OpenIMP | vendor userspace libimp.so
|
https://github.com/opensensor/openimp |
| timps | streamer (uses the IMP API) | https://github.com/Lu-Fi/timps |
It is used in thingino firmware, selected with BR2_PACKAGE_THINGINO_ISP_OPEN=y. The packages live in the upstream branch aperto (pull request #1756), pinned to commits on the aperto branches of opensensor/openimp and opensensor/open-tx-isp; the kernel VPU/rmem patches (#1748, #1752), the optional boot guard (#1749) and two SC2336 flip fixes (#1750, #1751) are merged there too. The goal is behavioural equivalence with the vendor stack, plus fixes and extras where the vendor stack is weak (see Beyond the Vendor).
Experimental but running: the test cameras (T10, T20, T21, T23, T31, T41, plus two more T23) run images built from thingino aperto with the fully open stack and stream H.264; H.265 on T31 and T41; hardware JPEG, second stream, OSD, motion detection and day/night work on the five older SoCs; T41 is still being completed (flip, night column noise, AE/AWB quality, short IVS gaps). A 24 h soak of the current next state is running; the first release tag follows after it (see Release Scheme). Image tuning is not yet vendor-equivalent on every sensor. Stability of the kernel driver comes before new features. See Changelog and Supported SoCs and Sensors.
- Supported SoCs and Sensors - what works where
- Architecture - driver, library, streamer, memory regions, encoders
- Building - standalone and thingino, BR2 options
- Installing and Switching - open versus vendor stack, boot guard
- Module Parameters - open-tx-isp load-time parameters
- Environment Variables - OPENIMP_* switches
- Beyond the Vendor - extra features and how a streamer uses them
- Memory - rmem, ispmem, MMAP pool, shortfall log lines
- Troubleshooting - log lines and their meaning
- Testing - device checks and the A/B method
- Performance - open stack versus vendor stack: sizes, memory, CPU, latency, bitrate
- Feature Matrix - summary of the open versus vendor feature matrix
- Per-SoC Status - one row per SoC
- Changelog - summary of changes
- Release Scheme - main, aperto, tags
Open an issue at https://github.com/opensensor/openimp/issues (library, encoder, streamer integration) or https://github.com/opensensor/open-tx-isp/issues (kernel driver, ISP, memory). If unsure, use openimp. What to include: Troubleshooting.
Kernel driver: open-tx-isp wiki
Test cameras are anonymised as cam-A (T31), cam-B (T23), cam-C (T20), cam-D (T21), cam-E (T10), cam-F (T41); cam-G and cam-H are further T23 cameras (other sensors). Flash only complete OTA images.