Edit/Add: I acually did figure out a way to disable the TNR. Its off. isp_ctrl_api.h
Now the goal will be to see what range, if any, it had and where the default was.
If its 1 to 10 and it defaults at 5, maybe setting it to 1 is the best. Picture is a bit noisy now but certainly beats the waxy, smeary image I had before
The normal CameraSetting controls do not control 3DNR/TNR. The Realtek ISP exposes it separately through isp_ctrl_api.h.
Add this include:
extern "C" {
#include "isp_ctrl_api.h"
}
Then, after Camera.videoInit() and Camera.channelBegin(), wait briefly and disable TNR:
delay(1000);
// Disable 3DNR / Temporal Noise Reduction
isp_set_tnr(0);
Example placement:
Camera.videoInit();
Camera.channelBegin(0);
Camera.channelBegin(1);
delay(1000);
// 3DNR / TNR OFF
isp_set_tnr(0);
isp_set_tnr(0) = OFF
isp_set_tnr(1) = ON
That’s it. It is a separate ISP control and should not be put inside Camera.updateVideoParams().
Optional readback:
int tnr;
isp_get_tnr(&tnr);
Serial.print("TNR = ");
Serial.println(tnr);
A readback value of 0 indicates TNR is disabled.
This is working on mine. I even have a little toggle on my WebUI to turn TNR/3DNR on/off. The jump between on and off is massive though. So I’m guessing whatever the default starting value for TNR is must be pretty agressive. I think in my scenario a “little bit” of 3DNR wouldn’t hurt, but if my options are waxy smeared oil painting or noise I’m guess I’m stuck with noise.
Any pointers to getting into the actual range/values for what I’m turning on/off right now would be great. I’d be stoked with just an on/off “if” the “on” wasnt so aggressive.