1. A method of rotating an input image comprising a plurality of rows of input pixels by a predetermined arbitrary angle to generate a rotated output image comprising a plurality of rows of output pixels, the method comprising: receiving a first input segment comprising a first contiguous subset of the plurality of rows of input pixels; applying to the first input segment a transformation depending on the predetermined angle and storing the transformed result in a memory; receiving a second input segment comprising a second contiguous subset of the plurality of rows of input pixels, the second subset being adjacent to the first in the input image; applying the transformation to the second input segment and storing the transformed result in a memory; and generating a first output segment based on the transformed results of the first and second input segments, the output segment comprising a contiguous subset of the plurality of rows of output pixels.