A computer-implemented method for correcting a distorted input image comprising: dividing an output image into an array of tiles, each tile comprising an array of pixels; dividing said array of tiles into a plurality of vertical sections, each vertical section spanning a plurality of tiles; determining a corresponding array of tiles in input image space, each tile in input image space corresponding to an output image tile transformed according to a distortion for a portion of an input image corresponding to said tile; providing an input image buffer comprising sufficient storage space to accommodate pixel information for plurality of lines of said input image sufficient to span a maximal vertical distortion of a section of an input image line spanning a vertical section; characterized in that the method further comprises receiving input image information line by line directly from an image signal processor; storing said input image information in said input image buffer, with each line of input image information spanning a line of said input image buffer; responsive to receiving a given input image line, determining if said line has passed a lowest portion of a section of a distorted line in said input image in said input image buffer, a section of a distorted line spanning a vertical section; responsive to identifying such a distorted line section, providing distortion descriptors (lldd) for each tile in input image space spanning said identified distorted line section to a distortion correction core; for each pixel of a line section in said output image corresponding to said distorted line section: determining a corresponding coordinate in input image space based on the distortion descriptors of the corresponding tile; determining addresses in said input image buffer for a plurality of pixels in said input image surrounding said coordinate; and interpolating pixel values at said determined surrounding addresses to provide an interpolated pixel value for said output image; accumulating interpolated pixel values for a line section of said output image; and writing said pixel values in a burst to external memory. dividing an output image into an array of tiles, each tile comprising an array of pixels; dividing said array of tiles into a plurality of vertical sections, each vertical section spanning a plurality of tiles; determining a corresponding array of tiles in input image space, each tile in input image space corresponding to an output image tile transformed according to a distortion for a portion of an input image corresponding to said tile; providing an input image buffer comprising sufficient storage space to accommodate pixel information for plurality of lines of said input image sufficient to span a maximal vertical distortion of a section of an input image line spanning a vertical section; characterized in that the method further comprises receiving input image information line by line directly from an image signal processor; storing said input image information in said input image buffer, with each line of input image information spanning a line of said input image buffer; responsive to receiving a given input image line, determining if said line has passed a lowest portion of a section of a distorted line in said input image in said input image buffer, a section of a distorted line spanning a vertical section; responsive to identifying such a distorted line section, providing distortion descriptors (lldd) for each tile in input image space spanning said identified distorted line section to a distortion correction core; for each pixel of a line section in said output image corresponding to said distorted line section: determining a corresponding coordinate in input image space based on the distortion descriptors of the corresponding tile; determining addresses in said input image buffer for a plurality of pixels in said input image surrounding said coordinate; and interpolating pixel values at said determined surrounding addresses to provide an interpolated pixel value for said output image; determining a corresponding coordinate in input image space based on the distortion descriptors of the corresponding tile; determining addresses in said input image buffer for a plurality of pixels in said input image surrounding said coordinate; and interpolating pixel values at said determined surrounding addresses to provide an interpolated pixel value for said output image; accumulating interpolated pixel values for a line section of said output image; and writing said pixel values in a burst to external memory.