Various embodiments according to the invention will be described hereinafter with reference to the accompanying drawings. According to an embodiment of the present invention, in an interpolation frame generating method which detects a motion vector by block matching, motion vector detection processing is performed by using two blocks having different sizes, and a motion vector detected by using the smaller block is adopted under normal conditions. If a plurality of reliable motion vector candidates are detected in the vector detection using the smaller block, a vector detected by using the larger block is referred to, and a vector which is closest to the motion vector detected by the large block among the motion vectors detected by the small block is adopted as a motion vector for generating an interpolation frame.
According to the present invention, it is possible to improve accuracy of detection of a motion vector for images including a periodical pattern, in detection of a motion vector for generating an interpolation frame.
An interpolation frame generating apparatus 10 includes a frame memory section 11, a motion vector detecting section 12, and an interpolation image generating section 13. The motion vector detecting section 12 detects a motion vector from, for example, sequential two frames in an input image signal by block matching processing. A frame rate of input image signals is, for example, 60 frames/second.
The interpolation image generating section 13 generates an interpolation frame on the basis of a detection result of the motion vector detecting section 12, and inserts the interpolation frame between the two frames. A frame rate of an output image signal, in which interpolation frames are inserted, is 120 frames/second, for example. The motion vector detecting section 12 and the interpolation image generating section 13 can be formed of hardware using individual electronic circuits, or software which is run by CPU (not shown).
An observed image block 23 in the former frame 20 is compared with each image block 25 in a search range 26 in the latter frame 22. The search range 26 is a region of a predetermined size. An image block 25a located in a position in the latter frame 22 corresponding to the position of the observed image block 23 in the former frame 20 serves as the center of the search range 26. A vector connecting the observed image block 23 with an image block (image block 25b in this example) having an image most similar to the image of the observed image block 23 in the search range 26 is determined as a motion vector of the observed image block 23. The motion vector 23 (including size and direction) is a vector indicated in two dimensions on a frame in actual processing, although it is shown in three-dimensional form in
Similarity of image blocks are determined by obtaining an absolute difference value between pixel values of pixels which are located in the same position in the observed image block 23 and each image block 25 for each of pixels in the image block, and obtaining a sum of the absolute difference values (SAD). The image block 25b in which the SAD has a minimum value is determined as an image block most similar to the observed image block 23. A vector from the observed image block 23 to the image block 25b is determined as a motion vector of the observed image block 23. An interpolation image block 24 in an interpolation frame 21 is generated on the basis of the motion vector and image data of the observed image block 23 and the image block 23b.
Operation of block matching processing by the motion vector detecting section 12 is described in detail below.
In this case, when the observed image block 23 including the object 30 in the former frame 20 is shifted in increments of 1 pixel from the position of the center image block 25a in the search range of the latter frame 22, SAD has a minimum (smallest in this processing) value as illustrated in
An optimum block size for accurate detection of a motion vector by block matching depends on resolution of input frames and movement of an object included in the frames. To perform block matching of a moving object, it is necessary to set the size of image blocks large enough to recognize the shape of the object (for example, an image block includes change in pixel value of horizontal pixels). However, setting the block size too large causes a problem of increasing the possibility that the block includes a plurality of moving objects. If a plurality of moving objects are included in one image block, it is difficult to specify a motion vector. Therefore, it is necessary to limit the block size to a certain size.
However, if the search range of the block includes a horizontal periodical pattern which is wider than the horizontal size of the block, it may be impossible to distinguish movement of the object from repetition of the periodical pattern and perform accurate movement detection.
The value of SAD has an only one minimum point (smallest point) in a vector (direction and shift amount) in a general natural image not including a periodical pattern, as illustrated in
The upper diagram of
The motion vector detecting section 12 calculates SAD while shifting the image block 23 of the former frame in increments of 1 pixel in, for example, the right direction from the corresponding position (the position of the image block 25a: shift amount 0) on the latter frame. When the periodical pattern 31 exists as illustrated in
Therefore, in the embodiment of the present invention, block matching processing is performed by using an image block 32 which includes the whole periodical pattern 31 in the horizontal or vertical direction, that is, which is larger than the observed image block 23.
As illustrated in
A motion vector is determined based on a minimum point (PS1 in this example) of the small block 25b, which is closest to the minimum point PL1 of SAD detected by using the large block 32 (33). The number of the block sizes is not limited to two as in this embodiment, but three or more sizes may be used as described below. Using blocks of various sizes improves the accuracy of motion vector detection.
The vector detecting section 12 includes a small block motion vector detecting section 12a, a large block motion vector detecting section 12b, and a vector determining section 12c. An input image signal and a delay frame signal from the frame memory 11 are input to each of the small block motion vector detecting section 12a and the large block motion vector detecting section 12b.
The small block motion vector detecting section 12a performs block matching processing using the above image block 23 as a small block, and thereby detects a motion vector, that is, a minimum point (horizontal shift amount and vertical shift amount). The large block motion vector detecting section 12b performs block matching processing as described above by using the large block 32, and thereby detects a motion vector.
Under normal conditions, the vector determining section 12c selects the motion vector detected by the small block detecting section 12a, and provides the motion vector to the interpolation image generating section 13. If a plurality of candidates of a reliable motion vector (whose SAD value of its minimum point is smaller than a predetermined value) are detected in motion vector detection using a small block, the vector determining section 12c refers to the motion vector detected by the large block motion vector detecting section 12b. The vector determining section 12c selects a vector which is closest to the motion vector (minimum point) detected by the large block motion vector detecting section 12b, from probable motion vectors (minimum points) detected by the small block motion vector detecting section 12a, and provides the selected motion vector to the interpolation image generating section 13.
As described above, this embodiment increases the accuracy of detection of the motion vector of images including a periodical pattern, without deteriorating the accuracy of detection of the motion vector of small objects included in frames.
Although motion vector detection using a small block is performed in parallel with motion vector detection using a large block in this embodiment, such motion vector detections may be performed in series. Specifically, the detection may be performed in the following sequence: motion vector detection is performed by using a small block; if a plurality of reliable motion vector candidates are detected, motion vector detection is performed by using a large block; and then an ultimate motion vector is determined among from the motion vector candidates. Performing such serial processing downsizes the circuit, and reduces power consumption.
Next, another method of block matching processing is explained.
In addition to the method of
Specifically, in the method of
If a pair of most similar image blocks is, for example, an image block 43 and an image block 44, a vector from the image block 43 to the image block 44 is determined as a motion vector of the interpolation image block 41. The interpolation image block 41 is generated in the interpolation frame 21, on the basis of the motion vector and image data of the most similar image blocks 43 and 44.
Next, the sizes and the motion vector search ranges of the image blocks are explained.
In
Specifically, the interpolation image block 41 (a block of a size corresponding to that of the small block SB in this processing) inserted onto the interpolation frame 21 is used as the center of point symmetry. If the small block SB is shifted by, for example, +12 pixels on the former frame 20, the small block SB is shifted by −12 pixels on the latter frame 22. SAD is calculated by comparing pixel values of corresponding pixels between corresponding image blocks of the frames 20 and 22. Therefore, in block matching using the small block SB, both the search range SSR on the former frame 20 and the search range SSR on the latter frame 22 have the size of 88 pixels×6 pixels.
As illustrated in
Specifically, the interpolation image block 41 (a block of a size corresponding to that of the large block LB in this processing) inserted onto the interpolation frame 21 is used as the center of point symmetry. If the large block LB is shifted by, for example, +12 pixels on the former frame 20, the large block LB is shifted by −12 pixels on the latter frame 22. SAD is calculated by comparing pixel values of corresponding pixels between corresponding image blocks of the frames 20 and 22. Therefore, in block matching using the large block LB, both a search range LSR on the former frame 20 and a search range LSR on the latter frame 22 have the size of 664 pixels×8 pixels.
In
The block matching processing is explained in detail below. The motion vector detecting section 12 has the configuration illustrated in
The vector determining section 12c obtains respective detection processing results (information of minimum points) from the small block motion vector detecting section 12a and the large block motion vector detecting section 12b (step (Block) 101).
As indicated by the curve α2, when the small block SB is shifted from −12 pixels to +12 pixels, four minimum points PS10 to PS13 are generated in this example. The vector determining section 12c determines the smallest value SADmin in the whole search region from the minimum value group of the minimum points provided from the small block motion vector detecting section 12a (Block 102). Motion vectors indicated by SAD minimum values (PS10, PS11, and PS12) existing in a predetermined range TH from the minimum value SADmin, that is, minimums value which satisfy the expression “|smallest value−minimum value|<TH” are selected as reliable motion vector candidates.
If there is only one reliable motion vector candidate (NO of Block 103), the vector determining section 12c supplies information of the SAD minimum point as a motion vector to the interpolation image generating section 13 (Block 104).
If there are a plurality of reliable motion vectors as illustrated in
In Step 106, if there are a plurality of minimum points detected by the large block, a minimum point having the smallest SAD among the minimum points is determined as a most reliable minimum point (motion vector). Therefore, the vector determining section 12c adopts, as the motion vector used for generating the interpolation image block 41, a minimum point which is closest to the most reliable minimum point detected by using the large block among the minimum points (motion vector candidates) detected by using the small block SB.
This motion vector detecting section has first to Nth block motion vector detecting sections 12a to 12n. The first to Nth block motion vector detecting sections 12a to 12n perform block matching processing using respective blocks of N sizes (2<N) which are different from each other. The first block motion vector detecting section 12a performs block matching processing using the smallest block, and the Nth block motion vector detecting section 12a performs block matching processing using the largest block.
If the first block motion vector detecting section 12a detects a plurality of motion vector candidates, the vector determining section 12p adopts a motion vector, which is closest among the detected motion vector candidates to the most reliable motion vector of the motion vectors detected by using the second to Nth block motion vector detecting sections 12b to 12n, as a motion vector used for generating the interpolation block. Thereby, it is possible to achieve higher accuracy of detection in motion vector detection for frames having a periodical pattern.
As described above, according the embodiment of the present invention, it is possible to increase accuracy of detection of a motion vector for images including a periodical pattern.
The above explanation is an embodiment of the present invention, and does not limit the apparatus and method of the present invention. Various modifications can be easily carried out for the present invention.
Number | Date | Country | Kind |
---|---|---|---|
2006-208792 | Jul 2006 | JP | national |