Repository navigation
Picture Quality T31 sc4336p
- SoC T31X, sensor SmartSens SC4336P (2560x1440), kernel 3.10.14, uClibc.
-
Open: open-tx-isp 56229bf4 (
tx-isp-t31.ko isp_clk=200000000) + OpenIMP 26dbdebe, streamer timps (OpenIMP flavour). -
Vendor: Ingenic
tx-isp-t31.ko(version H20221206a, same module parameters) + sensor module built from the same SDK source without the open-stack registry hook + Ingenic libimp 1.1.6 (uclibc), timps built withUSE_OPENIMP=0from the same source. Loaded at runtime after a reboot without the open modules; nothing flashed. - Same camera, same position, same light (indoor, dark, IR illumination; both stacks in night mode). Captures 20 min apart (different boots).
- Captures: JPEG snapshot of channel 0 (1920x1080) and frame 60 of the RTSP H.264 main stream. Sensor test pattern: register 0x4501 bit 3.

Sensor test pattern (column profile, 32 columns, mean Y of the middle third, H.264):
| Stack | Profile (left to right) |
|---|---|
| vendor | 0 x10, 50 136 157 163 170 178 185 194 203 218 235 248 255 255 255 144, 0 x6 |
| open | 0 x10, 84 197 252 255 ... 255 144, 0 x6 |
The vendor ISP renders the pattern's ramp as a smooth gradient (50..248 over 12 columns); the open ISP saturates after 2-3 columns. Same sensor data, so the open stack applies more gain and/or a steeper tone curve in night mode.
Scene (night/IR, monochrome, so no colour values):
| Metric | vendor JPEG | open JPEG | vendor H.264 | open H.264 |
|---|---|---|---|---|
| mean Y | 105.1 | 109.0 | 105.0 | 106.2 |
| Y p1..p99 | 46..162 | 43..179 | 47..162 | 42..174 |
| sharpness (Laplacian variance) | 244 | 268 | 222 | 247 |
| noise (flat blocks, Laplacian std) | 2.41 | 2.31 | 1.47 | 1.44 |
Format markers (identical for both stacks):
| vendor | open | |
|---|---|---|
| JPEG | JFIF, full range (pc), BT.601 | JFIF, full range (pc), BT.601 |
| H.264 VUI | video_signal_type present, full_range=0, BT.709 primaries/transfer/matrix | same |
- Scene brightness, sharpness and noise in night mode match the vendor within a few percent; open has a slightly wider highlight range (p99 179 vs 162).
- Tone curve / gain on the sensor pattern differs clearly: the open stack clips the ramp. This needs a look at night-mode gamma and digital gain.
- Both stacks mark H.264 as limited range while the data spans 0..255 (Y p1 ~0 on the pattern), so the mismatch is vendor behaviour too.
- Daylight colour comparison (red/green, saturation, NR) still to do: the scene was dark during this run. An external user reports "red too weak, NR too strong" on T31 in daylight.
- After a reboot the open stack's timps chose day mode at an exposure value where the vendor build chose night mode (dark picture).
The frame source hands a synthetic NV12 pattern (grey ramps, 32 px checkerboard 16/235, eight colour bars) to the encoders (OpenIMP OPENIMP_TEST_PATTERN=1, test hook, off by default). The stream is decoded on the host and compared with the ideal picture. The vendor libimp has no frame injection, so only the open side is measured.
.
| Stream | PSNR Y | PSNR U/V | SSIM Y | bar colour error | checker 16/235 |
|---|---|---|---|---|---|
| H.264 2560x1440 | 66.1 | 99/99 | 0.9998 | 0 | exact |
| H.264 1280x720 | 61.8 | 99/99 | 0.9994 | 0 | exact |
| H.264 640x360 | 63.5 | 99/99 | 0.9996 | 0 | exact |
| H.264 320x180 | 56.8 | 57/57 | 0.9986 | 0 | exact |
| JPEG 640x360 | 55.6 | 53.1/52.0 | 0.9979 | -1 at U/V 16/34 (quantisation) | exact |
| JPEG 320x180 | 51.0 | 43.0/46.0 | 0.9947 | -1 same | exact |
H.264 signals limited range, BT.709; JPEG is JFIF full range, BT.601. No colour swap, shift or orientation error.
Open Ingenic camera stack: open-tx-isp