In S1, an image reading device obtains an image region length Ld of an
original placed on an original mounting portion, a set moving velocity Vm
of an image reading unit, a required deceleration distance Ls, a
reference velocity Vr, and an absolute length Z. In S5, the image reading
device sets a flag to 0 if Vm.ltoreq.Vr (S2: NO) or Z.gtoreq.(Ld+Ls) (S3:
YES) and reads the entire image region length while the image reading
unit is moving at the set moving velocity Vm. The image reading device
sets the flag to 1 if Vm>Vr (S2: YES) and Z<(Ld+Ls) (S3: NO), reads
the image region while the image reading unit is moving at the set moving
velocity Vm up to the deceleration start position while the distance
moved by the image reading unit is less than or equal to (L1+Z-LS) (S17:
NO), then if the distance is greater than (L1+Z-Ls) (S17: YES), the image
reading unit performs deceleration reading and reads up to a position
immediately downstream of the image region.