An image reading apparatus , comprising: a reading unit configured to read a plurality of documents on a document table and generate an overall scan image as color image data including images of all the documents in the plurality of documents; and a controller configured to: detect edges of image regions for each of the documents in the overall scan image, and correct a tilt of each of the image regions and separate each of the image regions from each other to isolate an individual image of each document from the overall scan image, characterized in that the controller is configured to: perform a color determination on each of the isolated images to determine if a document corresponding to each of the isolated images is a color document or a non-color document, convert an isolated image to gray-scale image data when a document corresponding to the isolated image is determined to be a non-color document, generate a histogram of pixel values for pixels that form the isolated image which has been converted into the grayscale image data, and encode each of the isolated images with an image encoding method selected based on the color determination for each of the isolated images, wherein the isolated image which has been converted into the grayscale image data is encoded with a binary image encoding or a multi-value image encoding selected based on a shape of the generated histogram. a reading unit configured to read a plurality of documents on a document table and generate an overall scan image as color image data including images of all the documents in the plurality of documents; and a controller configured to: detect edges of image regions for each of the documents in the overall scan image, and correct a tilt of each of the image regions and separate each of the image regions from each other to isolate an individual image of each document from the overall scan image, detect edges of image regions for each of the documents in the overall scan image, and correct a tilt of each of the image regions and separate each of the image regions from each other to isolate an individual image of each document from the overall scan image, characterized in that the controller is configured to: perform a color determination on each of the isolated images to determine if a document corresponding to each of the isolated images is a color document or a non-color document, convert an isolated image to gray-scale image data when a document corresponding to the isolated image is determined to be a non-color document, generate a histogram of pixel values for pixels that form the isolated image which has been converted into the grayscale image data, and encode each of the isolated images with an image encoding method selected based on the color determination for each of the isolated images, wherein the isolated image which has been converted into the grayscale image data is encoded with a binary image encoding or a multi-value image encoding selected based on a shape of the generated histogram. perform a color determination on each of the isolated images to determine if a document corresponding to each of the isolated images is a color document or a non-color document, convert an isolated image to gray-scale image data when a document corresponding to the isolated image is determined to be a non-color document, generate a histogram of pixel values for pixels that form the isolated image which has been converted into the grayscale image data, and encode each of the isolated images with an image encoding method selected based on the color determination for each of the isolated images, wherein the isolated image which has been converted into the grayscale image data is encoded with a binary image encoding or a multi-value image encoding selected based on a shape of the generated histogram. <EOS>