1. A method for encoding an image block, the image block comprising a set of pixel values, the method comprising: selecting a spatial mode for predicting pixels in the image block based on neighboring pixels; generating a predicted block for the image block based on the neighboring pixels and the selected spatial mode; computing a prediction error between the image block and the predicted block; based on the selected spatial mode, selecting at least one transform function for representing the prediction error; and transforming the prediction error using the at least one transform function to derive at least one transform coefficient.