I have two signals Sa and Sb, both affected by the same noise. I don't know how much noise is mixed into each one, and the signal+noise is transformed using some (unknown) nonlinear function before I get it. If the original signals are Sa and Sb and the noise is N, what I actually have Ta = f1(Sa + k1*N) and Ta = f2(Sb + k2*N). f1 and f2 are different. I would like to get Sa and Sb, or possibly f1(Sa) and f2(Sb): ie the transforms are not especially of interest, but removing the shared noise is.
The transform functions f1 and f2 are monotonic and reasonably well behaved. I think they are closely approximated by f(x) = c1*(x^c2 + c3) where c2 is typically 0.9-1.1. In some cases f1 is approximately the same as f2, so I'm interested in a solution for f1 same as f2 also.
The signals are actually images; so there is quite a lot of data to work with, typically 1-4 million data points each in a pair of signals.
This seems like a source separation or possibly deconvolution/guided filtering problem, but I can't really think of a good approach. I can't even come up in with a good solution in the limited case when there are no transform functions... it is an under-determined problem, because given Ta = Sa+k1*N and Tb = Sb+k2*N, any arbitrary choice of N and k1 and k2 works for Sa = Ta-k1*N and Sb = Tb-k2*N. I think there have to be some regularizing assumptions, like minimizing total variation of Sa, Sb and N, or minimizing cross-correlation, or some kind of other entropy based metric.
EDIT As requested, here is an image pair. The highlighted black dot is not really in the images, it is due to debris in the optics, and present in both images in the exact same position (although: it has somewhat lower intensity in the second image).