Skip to content

Picture Quality T23 sc2336p

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

T23 / SC2336P: vendor vs open stack (2026-10-19)

Setup

  • SoC T23N, sensor SmartSens SC2336P (1920x1080), kernel 3.10.14, uClibc, PTZ camera.
  • Open: open-tx-isp a6157440 (direct_mode=0 isp_memopt=1) + OpenIMP 45314f31, timps (OpenIMP flavour).
  • Vendor: Ingenic tx-isp-t23.ko (H20241028a, same parameters) + sensor module from the same SDK source without the open-stack registry hook (data_interface=1 shvflip=1) + Ingenic libimp 1.3.0 (uclibc), timps USE_OPENIMP=0. Runtime load after a reboot, nothing flashed.
  • Same camera, same PTZ home position, same light (indoor, dark, IR, night mode), captures 2 minutes apart.

Results

T23-sc2336p-pattern.png

Sensor test pattern (0x4501 bit 3), column profile (H.264):

Stack Profile
vendor 255 255 255 255 249 242 233 224 216 206 197 188 179 170 159 148 134 119 94 5 0 ...
open 255 255 255 255 250 242 233 225 215 206 197 188 179 169 159 148 134 119 93 5 0 ...

The open ISP reproduces the vendor's ramp within +-1 code value.

Scene (night/IR, monochrome):

Metric vendor JPEG open JPEG vendor H.264 open H.264
mean Y 110.4 104.7 110.7 127.5 (*)
Y p1..p99 20..255 15..255 20..255 60..255 (*)
sharpness (Laplacian variance) 606 631 583 484 (*)
noise (flat blocks) 0.52 0.44 0.51 0.20 (*)

(*) open H.264 frame taken ~60 s after start while AE was still moving; the JPEG taken a few seconds earlier is the better comparison.

Format markers:

vendor open
JPEG no JFIF APP0 segment; decoders assume full range, BT.601 JFIF APP0, full range, BT.601
H.264 VUI no video_signal_type (unspecified = limited) same

Assessment

  • Tone curve on the sensor pattern: identical to the vendor.
  • Scene: brightness within 5 %, sharpness and noise equal (JPEG).
  • Only format difference: open JPEGs carry a JFIF header, vendor JPEGs do not. Both decode the same.

Open points

  • Daylight colour comparison still to do (camera sees a dark room).

Encoder test pattern (open stack, synthetic source)

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. T23-sc2336p-encoder-pattern.png.

Stream PSNR Y PSNR U/V SSIM Y bar colour error checker 16/235
H.264 1920x1080 53.4 73.7/73.7 0.9969 0 15.9/234.9
H.264 640x360 52.5 68.9/68.9 0.9962 0 15.9/234.9
H.264 320x240 51.3 65.1/64.0 0.9953 0 15.9/234.9
JPEG 1280x720 54.6 58.9/55.9 0.9972 -1 at U/V 16/34 exact
JPEG 640x360 55.4 53.1/52.0 0.9979 -1 same exact
JPEG 320x240 / 320x180 53.5 / 51.7 48.7/48.3 / 43.0/46.0 0.9967 / 0.9961 -1 same exact

H.264 has no VUI (decoder default range). Findings: a second H.264 channel at 1280x720 next to 1920x1080 fails on the rmem budget (rmem allocation of 1921 KB failed, error is reported cleanly); H.264 at 320x180 fails after the IDR (P-frame job timeout, VPU core reset) - also without the pattern, so independent of this test; 320x240 works.

Open Ingenic camera stack: open-tx-isp

Clone this wiki locally