Image data is separated from three lines of image data in accordance with a storage capacity of a source memory. The separated image data is transferred to the source memory, Several pieces of image data are read out in sequence from the transferred image data and forwarded to a filtering process. These operations are then repeated to provide a line of filtered image data.