A method of generating a 3D image from an input 2D image by generating at least one shifted 2D image for presentation to a user in combination with the input 2D image or another shifted 2D image derived from the input 2D image, the method comprising: receiving the input 2D image; characterised by: for each row of pixels in the input 2D image, from a selected point along the row, depending on an amount of shift required, mapping all pixels a common number of pixel positions to the left or mapping all pixels a common number of pixel positions to the right to positions in a corresponding row of pixels in the shifted 2D image; and mapping pixels of the row in positions in the input 2D image before the selected point a variable number of pixel positions to the left or right to positions in the corresponding row of pixels in the shifted 2D image; wherein the input 2D image has a width of w pixels and the selected point is defined as n in which n < w, the amount of shift being a, such that all pixels in the input 2D image with a position greater than or equal to n are shifted to a new position in the shifted 2D image by the amount of shift α; wherein all pixels in the input 2D image having a position less than n are shifted to a new position in the shifted 2D image by a variable amount of shift such that the variable amount of shift varies from 0 to α as the pixel position in the input 2D image varies from 1 to n-1; wherein, for pixel positions in the corresponding row in the shifted 2D image for which there is not a direct mapping from a single pixel in the row in the input 2D image, the pixel value is determined on a weighted average of pixels in the row in the input 2D image; wherein the variable mapping is determined in dependence on a linear relationship between an original pixel position in the input 2D image and a mapped pixel position in the shifted 2D image and wherein the linear relationship has a constant of proportionality dependent on original pixel position. receiving the input 2D image; characterised by: for each row of pixels in the input 2D image, from a selected point along the row, depending on an amount of shift required, mapping all pixels a common number of pixel positions to the left or mapping all pixels a common number of pixel positions to the right to positions in a corresponding row of pixels in the shifted 2D image; and mapping pixels of the row in positions in the input 2D image before the selected point a variable number of pixel positions to the left or right to positions in the corresponding row of pixels in the shifted 2D image; wherein the input 2D image has a width of w pixels and the selected point is defined as n in which n < w, the amount of shift being a, such that all pixels in the input 2D image with a position greater than or equal to n are shifted to a new position in the shifted 2D image by the amount of shift α; wherein all pixels in the input 2D image having a position less than n are shifted to a new position in the shifted 2D image by a variable amount of shift such that the variable amount of shift varies from 0 to α as the pixel position in the input 2D image varies from 1 to n-1; wherein, for pixel positions in the corresponding row in the shifted 2D image for which there is not a direct mapping from a single pixel in the row in the input 2D image, the pixel value is determined on a weighted average of pixels in the row in the input 2D image; wherein the variable mapping is determined in dependence on a linear relationship between an original pixel position in the input 2D image and a mapped pixel position in the shifted 2D image and wherein the linear relationship has a constant of proportionality dependent on original pixel position. for each row of pixels in the input 2D image, from a selected point along the row, depending on an amount of shift required, mapping all pixels a common number of pixel positions to the left or mapping all pixels a common number of pixel positions to the right to positions in a corresponding row of pixels in the shifted 2D image; and mapping pixels of the row in positions in the input 2D image before the selected point a variable number of pixel positions to the left or right to positions in the corresponding row of pixels in the shifted 2D image; wherein the input 2D image has a width of w pixels and the selected point is defined as n in which n < w, the amount of shift being a, such that all pixels in the input 2D image with a position greater than or equal to n are shifted to a new position in the shifted 2D image by the amount of shift α; wherein all pixels in the input 2D image having a position less than n are shifted to a new position in the shifted 2D image by a variable amount of shift such that the variable amount of shift varies from 0 to α as the pixel position in the input 2D image varies from 1 to n-1; wherein, for pixel positions in the corresponding row in the shifted 2D image for which there is not a direct mapping from a single pixel in the row in the input 2D image, the pixel value is determined on a weighted average of pixels in the row in the input 2D image; wherein the variable mapping is determined in dependence on a linear relationship between an original pixel position in the input 2D image and a mapped pixel position in the shifted 2D image and wherein the linear relationship has a constant of proportionality dependent on original pixel position.