Some of conventional imaging devices which capture moving images while encoding the moving images employ, for example, the MPEG encoding. In the MPEG encoding, a motion vector between an encoding-target frame and a previous frame is obtained by a motion vector estimation executed for each sub-block called a macroblock. Using the obtained motion vector, a difference between blocks is calculated. Then, the conventional imaging device encodes the resultant motion-compensated image difference.
Examples of such a conventional imaging device include an imaging device which captures images at a frame rate higher than a target encoding frame rate and uses the high-frame-rate images for a motion vector estimation to enable the estimation in a larger area with a less amount of calculation (see Page 24 and FIG. 1 of Patent Reference 1, for example). FIG. 1 is a diagram showing an example of a configuration of a conventional imaging device having a high-speed image capturing capability.
In FIG. 1, the imaging device includes an imaging unit 101, an image receiving unit 102, a motion estimation unit 103, a motion vector synthesis unit 104, an encoding unit 105, an internal bus 106, a Dynamic Random Access Memory (DRAM) control unit 107, a memory card control unit 108, a DRAM 109, a memory card 110, and a frame rate conversion unit 111. It should be noted that the components enclosed by a dotted line are implemented by an integrated circuit. The imaging unit 101 captures moving images at a high frame rate which is n-times higher than a target encoding frame rate (“n” is a real number larger than 1). The images captured at the high frame rate are written into the DRAM 109 by the image receiving unit 102 via the internal bus 106 and the DRAM control unit 107.
The frame rate conversion unit 111 converts the high-frame-rate images stored in the DRAM control unit 107 into images having the target encoding frame rate. It should be noted that although “n” is a real number, the following describes a case, as an example, where “n” is an integer for ease of explanation. For example, the frame rate conversion unit 111 synthesizes an n number of images captured at the nX-speed high frame rate into a single image so as to convert the images into an image having the target encoding frame rate.
The motion estimation unit 103 sequentially performs a motion vector estimation between adjacent frames of the images captured at the high frame rate. Vectors obtained as a result of the estimations performed by the motion estimation unit 103 are synthesized by the motion vector synthesis unit 104. Accordingly, a synthesized motion vector corresponding to the target encoding frame rate is generated. The images captured at the high frame rate are accumulated in the DRAM 109 as many as needed to obtain at least the synthesized motion vector. To be more specific, the DRAM 109 stores at least an “n+1” number of previous frames of the images captured at the nX-speed high frame rate.
The encoding unit 105 performs motion compensation on the synthesized frame image generated by the frame rate conversion unit 111 using the synthesized motion vector generated by the motion vector synthesis unit 104, and then encodes the resultant difference. Moreover, the encoding unit 105 records the encoded image into the memory card 110 via the memory card control unit 108.
With the configuration described thus far, the motion estimation using the images at the high frame rate can improve processing efficiency in the motion estimation. When an estimation distance per motion vector estimation is m pixels, a target estimation area is m2. Here, since the synthesis is performed an n number of times, a motion vector corresponding to an n*m pixel distance can be estimated by calculation performed only on an n*m2 area as a target estimation area.
When it is desired that images are captured at the same rate as the target encoding frame rate and that a motion vector corresponding to the same n*m pixel distance as above is estimated, the motion vector estimation needs to be performed on an (n*m)2 area.
More specifically, (n*m)2÷n*m2=n. The image capturing at the nX-speed high frame rate can improve the efficiency in nX-speed motion estimation processing.
This means that when the same calculation amount is assigned to the motion estimation processing, a larger estimation area can be allocated. In other words, when an object moving more actively is captured, more improvement can be expected in the encoding efficiency.