Or maybe, instead of constant 1.5 for all interlaced content, something like this: (assuming 1.5 is our desired value for horizontal resolution of 640 px and we don’t want to go over 2.0)
float icoeff = min(global.OriginalSize.x / (640 / 1.5), 2.0);
float fdivider = max(min(mix(prescalex.x, prescalex.y,TATE), 2.0), icoeff*float(interb));