1. A method for interpolation comprising: (a) receiving an input image having a plurality of pixels; (b) estimating an edge direction proximate a first pixel of said input image using a first technique from a plurality of discrete potential directions; (c) interpolating pixels using a substantially arbitrary scaling factor proximate said first pixel based upon said estimated edge direction; (d) another interpolating pixels using substantially arbitrary scaling factor proximate said first pixel based upon another technique not based upon said estimated edge direction; (e) determining interpolated pixels for an output image having more pixels than said input image based upon said interpolated pixels of step (c) and step (d).