An apparatus for encoding a moving image, the apparatus comprising: a segment-unit-coding module for determining a number of vertical boundary lines for parallel processing of an input image frame to be encoded, and dividing, based on the determined number of the vertical boundary lines, the input image frame to be encoded into a plurality of segments, the input image frame to be encoded being divided into rectangular segments by the vertical boundary lines; and a macroblock-unit-coding module for dividing each of the segments into a plurality of blocks and encoding each of the segments by a block unit, wherein each of the segments is encoded using at least one of the motion prediction or intra prediction, wherein the input image frame to be encoded comprises a first segment, a second segment and a third segment; and wherein the macroblock-unit-coding module comprises: an inter prediction unit and an encoding unit for (a) estimating an integer pixel motion for a block included in a segment, (S400, S402a) the segment being included in the input image frame to be encoded; (b) estimating a 1/n pixel motion for the block included in the segment; (S404a, S408a) for estimating a half or a quarter pixel image and (c) generating a prediction signal of a 1/n pixel image for the block included in the segment using a motion vector determined by steps (a) and (b); and encoding a residual signal for the block included in the segment, the residual signal being a difference between an original signal relating to the block included in the segment and the prediction signal, (S402b, S404b, S408b) wherein step (c) for a block included in the first segment, step (b) for a block included in the second segment and step (a) for a block included in the third segment are performed independently of each other in order to process each of the segments in parallel. a segment-unit-coding module for determining a number of vertical boundary lines for parallel processing of an input image frame to be encoded, and dividing, based on the determined number of the vertical boundary lines, the input image frame to be encoded into a plurality of segments, the input image frame to be encoded being divided into rectangular segments by the vertical boundary lines; and a macroblock-unit-coding module for dividing each of the segments into a plurality of blocks and encoding each of the segments by a block unit, wherein each of the segments is encoded using at least one of the motion prediction or intra prediction, wherein the input image frame to be encoded comprises a first segment, a second segment and a third segment; and wherein the macroblock-unit-coding module comprises: an inter prediction unit and an encoding unit for (a) estimating an integer pixel motion for a block included in a segment, (S400, S402a) the segment being included in the input image frame to be encoded; (b) estimating a 1/n pixel motion for the block included in the segment; (S404a, S408a) for estimating a half or a quarter pixel image and (c) generating a prediction signal of a 1/n pixel image for the block included in the segment using a motion vector determined by steps (a) and (b); and encoding a residual signal for the block included in the segment, the residual signal being a difference between an original signal relating to the block included in the segment and the prediction signal, (S402b, S404b, S408b) wherein step (c) for a block included in the first segment, step (b) for a block included in the second segment and step (a) for a block included in the third segment are performed independently of each other in order to process each of the segments in parallel. an inter prediction unit and an encoding unit for (a) estimating an integer pixel motion for a block included in a segment, (S400, S402a) the segment being included in the input image frame to be encoded; (b) estimating a 1/n pixel motion for the block included in the segment; (S404a, S408a) for estimating a half or a quarter pixel image and (c) generating a prediction signal of a 1/n pixel image for the block included in the segment using a motion vector determined by steps (a) and (b); and (a) estimating an integer pixel motion for a block included in a segment, (S400, S402a) the segment being included in the input image frame to be encoded; (b) estimating a 1/n pixel motion for the block included in the segment; (S404a, S408a) for estimating a half or a quarter pixel image and (c) generating a prediction signal of a 1/n pixel image for the block included in the segment using a motion vector determined by steps (a) and (b); and encoding a residual signal for the block included in the segment, the residual signal being a difference between an original signal relating to the block included in the segment and the prediction signal, (S402b, S404b, S408b) wherein step (c) for a block included in the first segment, step (b) for a block included in the second segment and step (a) for a block included in the third segment are performed independently of each other in order to process each of the segments in parallel.