An image processing apparatus comprising: first storage means (111, 112) and second storage means (113 - 117); said first storage means (111, 112) comprising a first input buffer, and a second input buffer; said second storage means comprising a first column register, a second column register, a third column register, a line memory, and a line register; storage control means for sequentially receiving, in a raster order, image blocks that are obtained by dividing an input image into blocks; and resizing means, wherein every time said storage control means receives one of said image blocks, said storage control means stores, as a target image block, said one image block alternately in said first input buffer or said second input buffer, while storing image data of the rightmost column of said target image block alternately and successively in said first column register, said second column register, or said third column register, and storing image data of the lowermost line of said target image block in said line memory, while storing in said line register the image data read out from the line memory, which have been previously stored in the line memory, while leaving pixel data of one pixel already stored in said line register, said one pixel being continuous to the pixels the image data of which are read out from the line memory, said resizing means resizes said target image block stored in said first storage means (111, 112) to generate a resized image block, and in resizing said target image block, said resizing means obtains pixel data of each pixel of said resized image block by performing an interpolation calculation using pixel data pieces included in said image data of said target image block, included in said image data stored in one of said first, second, and third column registers (113 - 115) corresponding to the rightmost column of a previously stored image block continuous to the target image block, and included in said image data stored in the line register. first storage means (111, 112) and second storage means (113 - 117); said first storage means (111, 112) comprising a first input buffer, and a second input buffer; said second storage means comprising a first column register, a second column register, a third column register, a line memory, and a line register; storage control means for sequentially receiving, in a raster order, image blocks that are obtained by dividing an input image into blocks; and resizing means, wherein every time said storage control means receives one of said image blocks, said storage control means stores, as a target image block, said one image block alternately in said first input buffer or said second input buffer, while storing image data of the rightmost column of said target image block alternately and successively in said first column register, said second column register, or said third column register, and storing image data of the lowermost line of said target image block in said line memory, while storing in said line register the image data read out from the line memory, which have been previously stored in the line memory, while leaving pixel data of one pixel already stored in said line register, said one pixel being continuous to the pixels the image data of which are read out from the line memory, said resizing means resizes said target image block stored in said first storage means (111, 112) to generate a resized image block, and in resizing said target image block, said resizing means obtains pixel data of each pixel of said resized image block by performing an interpolation calculation using pixel data pieces included in said image data of said target image block, included in said image data stored in one of said first, second, and third column registers (113 - 115) corresponding to the rightmost column of a previously stored image block continuous to the target image block, and included in said image data stored in the line register.