A method for correcting a distorted input image comprising: a) determining a local region of an image to be displayed and dividing said region into an array of tiles, each tile having a boundary defined by a plurality of nodes (N1..Nn), each node having a set of coordinates within said image space; b) for each tile of the local region, transforming said node coordinates according to a local transformation (Lt) to take into account a local distortion of said input image in said local region; c) determining a global transformation (Gt) mapping coordinates for a global array of nodes (Gn1...Gnn) to take into account a global distortion of said input image; d) for each node of each tile of the local region: i) determining nodes of the global array immediately surrounding the node; ii) interpolating the transformation of the surrounding global node coordinates to transform the at least locally transformed coordinates of the node according to the global transformation; e) for each tile of the local region: i) reading a non-rectangular portion of said distorted input image corresponding to the locally and globally transformed node coordinates (lldd_out) of said tile; ii) correcting the distortion of said non-rectangular portion of said distorted input image to provide a tile (gdc_out) of a corrected output image; and f) storing said corrected tiles (tile_out) for said output image. a) determining a local region of an image to be displayed and dividing said region into an array of tiles, each tile having a boundary defined by a plurality of nodes (N1..Nn), each node having a set of coordinates within said image space; b) for each tile of the local region, transforming said node coordinates according to a local transformation (Lt) to take into account a local distortion of said input image in said local region; c) determining a global transformation (Gt) mapping coordinates for a global array of nodes (Gn1...Gnn) to take into account a global distortion of said input image; d) for each node of each tile of the local region: i) determining nodes of the global array immediately surrounding the node; ii) interpolating the transformation of the surrounding global node coordinates to transform the at least locally transformed coordinates of the node according to the global transformation; i) determining nodes of the global array immediately surrounding the node; ii) interpolating the transformation of the surrounding global node coordinates to transform the at least locally transformed coordinates of the node according to the global transformation; e) for each tile of the local region: i) reading a non-rectangular portion of said distorted input image corresponding to the locally and globally transformed node coordinates (lldd_out) of said tile; ii) correcting the distortion of said non-rectangular portion of said distorted input image to provide a tile (gdc_out) of a corrected output image; and i) reading a non-rectangular portion of said distorted input image corresponding to the locally and globally transformed node coordinates (lldd_out) of said tile; ii) correcting the distortion of said non-rectangular portion of said distorted input image to provide a tile (gdc_out) of a corrected output image; and f) storing said corrected tiles (tile_out) for said output image.