A High-Speed and Structure-Preserving Retinex Method Based on a Complex Exponential Kernel: XCR
A training-free Retinex method whose off-center kernel, derived from a complex exponential, beats MSR and a LIME-based method on SSIM at 15 FPS (1080p) on a CPU
XCR (eXponential-Cos Retinex) is the second of my training-free low-light enhancement methods, a sole-author preprint posted to Jxiv on November 20, 2025. I built it during LEADING EDGE Shikoku, a program under Japan’s METI AKATSUKI Project, as the enhancement stage for NOVA, a vision-assist system for nighttime environments.
Retinex theory treats an image as reflectance multiplied by illumination. Classical methods such as SSR and MSR estimate the illumination by smoothing with a Gaussian, which leaves halos around edges and amplifies noise in dark regions, while LIME-style illumination maps over-enhance and blow out highlights. The paper argues that unstable illumination estimation is the common root, and replaces the Gaussian with a kernel derived analytically from a complex exponential.
Method
The kernel starts from X(u) = exp(−iau). Taking the magnitude of X(u)/{1 + X(u)}² and using |X(u)| = 1 gives the closed form K(u) = 1/(2{1 + cos(au)}). Unlike a Gaussian, it is near zero at the center: with a = 0.5 and radius N = 15 it peaks sharply near u = ±6, so illumination is estimated from a pixel’s surroundings rather than the pixel itself, which makes it less sensitive to local noise and to the abrupt edges that produce halos.

The normalized kernel is applied separably in x and y, so the cost is O(N) per pixel. Reflectance is recovered in log space, and a dynamic gain S = 1 + w_L(s0 − 1), where w_L is a sigmoid weight on the local illumination, boosts dark regions while holding back enhancement in bright ones. The same gain goes to all RGB channels, followed by a light gamma correction, and every parameter was fixed across the test images.
Results
Everything ran in Python with OpenCV and NumPy on a Snapdragon X CPU, with no GPU. On five low-light stills captured in real environments, XCR scored SSIM 0.6470 against 0.6024 for MSR and 0.3287 for a LIME-based method, and PSNR 14.77 dB against 5.69 and 5.06 dB. On a 1,000-frame 1920×1080 video shot in the dark it averaged 15.32 FPS, with an inter-frame SSIM of 0.8742. Visually, XCR showed almost no halos and little color shift. The evaluation set is small, and the paper leaves tuning the kernel parameter and the gain control as future work.
What it led to
XCR shipped inside the NOVA Android tablet app as an “XCR Low-light Enhancement” toggle, presented at the program’s final report on January 31, 2026. The program also sent me to Singapore in November 2025 to present at NUS, BLOCK71 and IPI Singapore, where a security researcher was more interested in the formula than in the app and asked what I planned to do with it beyond publishing.
The method was also touchy: change the kernel radius or slope a little and the output could fall apart. The kernel turned out to be the derivative of the sigmoid function sampled along the imaginary axis, where the logistic function has its poles. Moving it to the real axis became SD-Retinex.
Publications
A High-Speed and Structure-Preserving Retinex Method Based on a Complex Exponential Kernel: XCR
JxivPreprint
BibTeX
@misc{okugawa2025xcr, author = {Okugawa, Toma}, title = {複素指数カーネルに基づく高速・構造保持型 Retinex手法 XCRの提案}, howpublished = {Jxiv preprint}, year = {2025}, month = nov, doi = {10.51094/jxiv.1961}, url = {https://doi.org/10.51094/jxiv.1961} }
Built on this work
NOVA: a 360-degree vision-assisted mobile robot for nighttime environments (LEADING EDGE Shikoku)
Night-vision mobile-robot project selected for LEADING EDGE Shikoku (METI AKATSUKI); it produced the XCR method and a presentation trip to Singapore
