I'm trying to solve the following problem. I got a "low frequency" input 2D signal over a square region. I'll collect a few samples, somewhere around 10-30 samples maybe, the exact sample count will be dynamic. Then I want to compress this to much less data and later reconstruct the square representation. The compression will only occur once but the decompression multiple times. Performance is essential. So I need a method that compress fast, but decompress faster and to a compact format so the data transfer won't become the bottleneck.
The actual application: It's for real-time computer graphics processed on a GPU. I compute samples of lighting in a vertex shader. Then the data transfers to a pixel shader where it gets reconstructed. I will accept a certain amount of error as long as the result is "blurry", i.e. no sharp artifacts. Also transcendental functions are somewhat slow on a GPU (even though a slim transcendental representation will beat any verbose solution ofc)
I've been thinking about several methods. Maybe something fourier based, similar to spherical harmonics but optimized for a 2D domain. What would be a good type of basis function to use?
Or maybe I could use some curve fitting method (plane fitting). That might be a slim and adaptive solution. What could be a good type of 2D function(s)?
My hope with this question is that there are some mathematics / signal processing wizards somewhere that can help me steer in the right direction :)