I am using a bicubic interpolation algorithm in order to upscale an height map, and I am noticing some artifacts around the pixels boundaries. However, these artifacts don't seem to appear when I use a simple cubic interpolation (spline).
Could it be because the bicubic interpolation doesn't guarantee the second derivative to be continuous, unlike the cubic spline ? If so, is there known algorithms that have a continuous second derivative ? Otherwise, is there a way to deal with these artifacts ?
Linear interpolation (shows the pixels boundaries):
Bicubic interpolation (artifacts visible at pixels boundaries):
Cubic interpolation (no noticeable artifacts):
I tried several bicubic formulas, which gave me the same results. Here are some examples:
Edit: I made some searches and found that B-Spline have a continuous C2 (also suggested by Bharat). I implemented it and it looks fine, even if it's an approximation and not an interpolation (it doesn't go through the samples).
B-spline (approximation):