This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2007-225889, filed Aug. 31, 2007, the entire contents of which are incorporated herein by reference.
1. Field
One embodiment of the present invention relates to an interpolative frame generating apparatus for generating and inserting an interpolated frame between continuous frame images. In particular, the present invention relates to an interpolative frame generating apparatus for performing block matching using a variable-length block.
2. Description of the Related Art
When moving images are displayed on a liquid crystal display (LCD), the LCD displays frame images (hereinafter simply referred to as “frames”) at a rate of 60 frames/second, for example. The frames are sequential scanning images obtained by processing an interlace signal of 60 fields/second. In other words, the LCD continues to display one frame for 1/60 second.
When such images displayed on LCDs are viewed, an image of a prior frame is left as persistence of vision for viewer's eyes. For this reason, there are cases where a moving object in the images appears blurred, or movement of the object appears unnatural. Such a phenomenon appears more conspicuously on large screens.
Jpn. Pat. Appln. KOKAI Publication No. 2005-6275 discloses the following method to prevent the foregoing blurring of moving images. According to the method, an interpolated frame is inserted between two continuous two frames to display moving images.
However, according to the technique disclosed in the foregoing Publication, block matching is performed using a fixed-length block. For this reason, proper matching processing is not performed with respect to images including a periodical repeating pattern.
A general architecture that implements the various feature of the invention will now be described with reference to the drawings. The drawings and the associated descriptions are provided to illustrate embodiments of the invention and not to limit the scope of the invention.
Various embodiments according to the invention will be described hereinafter. In general, according to one embodiment of the invention, there is provided an interpolative frame generating apparatus for generating an interpolated frame image inserted between continuous frame images, comprising: a first operation unit performing block matching processing with respect to a first block having a fixed size between the continuous frame image, and based on the result, calculating a size of a second block larger than the first block; a second operation unit performing block matching processing between the continuous frame image using the second block in accordance with the size calculated by the first operation unit in a prior interpolated frame processing cycle to calculate a motion vector; a third operation unit outputting a motion vector when one motion vector is detected based on the result of performing block matching processing with respect to the first block, and selecting and outputting one motion vector candidate from a plurality of motion vector candidates based on the motion vector obtained related to the second block in the prior interpolated frame processing cycle when a plurality of motion vector candidates is detected; and a generator producing an interpolated frame image based on the motion vector output by the third operation unit.
A large block is properly variable with respect to an image including a periodical repeating pattern, and thereby, it is possible to make high-accurate motion vector detection in accordance with an image pattern. In addition, the operation result used for the operation processing is acquired from a foregoing processing cycle of the interpolated frame. Thus, the total amount of required buffer is reduced.
An embodiment of the invention will be hereinafter described with reference to the accompanying drawings.
The configuration of an interpolative frame generating apparatus according to one embodiment of the invention will be described referring to the drawings.
As shown in
The motion vector detector 12 includes a fixed-length block processing unit 21, a variable-length block processing unit 24, a block size determination unit 25 and a simple operation controller 26. The simple operation controller 26 makes an operation using the operation result of the prior interpolated frame processing cycle. The fixed-length block processing unit 21 includes a calculator 22 and a selector 23.
As seen from
Specifically, the motion vector detector 12 executes block matching processing between the prior frame 31 and the subsequent frame 33 based on fixed-length blocks 40-1, 40-2, . . . , 40-54 shown in
The simple operation controller 26 controls an operation using the operation result of the interpolated frame in the foregoing operation. This serves to reduce an operation pixel buffer capacity included in the simple operation controller to about ⅓ of the conventional case. The details will be explained below referring to the drawings.
Block matching processing of fixed-length block and variable-length block will be described referring to the drawings.
Block Matching Processing
According to the block matching processing, detection is made that an image block having a predetermined size in a certain frame matches with any image block of the subsequent frame.
As illustrated in
If the most similar image block pair is image blocks 40-1 and 42-1 as described above, a vector from the image block 40-1 to the image block 42-1 is determined as a motion vector of the interpolated image block 41. The motion vector is detected as direction and distance in which the image block moves between the prior and subsequent frames. In this way, the interpolated image block 41 in the interpolated frame 32 is generated based on the motion vector and image data of the most similar image blocks 40-1 and 42-1.
As described above, the interpolative image generator 13 generates an interpolated frame image based on the motion vector between frames detected by the motion vector detector 12. A new interpolated frame positioned between input frames is generated using a motion vector of each image block. The interpolated frame is inserted between two input frames, and thereby, the number of frames is increased to display a naturally visible motion image.
Fixed-Length Block (Small Block) and Variable-Length Block (Large Block)
According to the block matching processing, detection accuracy of the motion vector is improved in the following manner. Specifically, variable-length blocks 40′-1, 40′-2, . . . having a variable block size shown in the under portion of
In other words, as seen from
As depicted in
Therefore, according to an interpolative frame generating method of detecting the motion vector using block matching, using at least two or more blocks having different size is effective. Usually, a motion vector detected using a smaller block of two or more blocks is employed. When vector detection is made using the small block, if a plurality of motion vector candidates is detected, the following operation is carried out. Specifically, reference is made to a motion vector detected using a large block to select a true motion vector from the motion vector candidates.
According to the graph of
Incidentally, the foregoing technique is disclosed in the prior application (Jpn. Pat. Appln. Publication No. 2008-35404, filed on Jul. 31, 2006).
Determination of Variable-Length Block Size
The following is an explanation of the standard of determining a proper block size when a motion vector of the variable-length block (large block) is detected.
As shown in
Thus, it is desired as a proper size to satisfy the following condition. Specifically, the block size when the motion of the large block is detected has a sufficient size, which is not confused by the periodical repeating pattern. In addition, the block size is not too large wastefully, so that a plurality of objects each having some motion comes into the block.
According to a method of detecting the periodical repeating pattern width, “an area where some motion vector candidates are generated” is detected. Based on the width of the area, “a size of a variable-length block (large block)” is determined.
Thus, the following determination method is preferable; however, the present invention is not limited to this method.
“Area where some motion vector candidates are generated”≈“Size of variable-length block (large block)”
Or,
“Area where some motion vector candidates are generated” ≈“Size of variable-length block (large block)”+a (constant)
Incidentally, the technique similar to this technique is disclosed in the prior application (Jpn. Pat. Appln. Publication No. 2008-147951, filed on Dec. 8, 2006).
An operation control method of the interpolative frame generating apparatus 10 will be explained below with reference to a flowchart.
Three-Stage Operations
As seen from the flowchart of
According to a first operation, the motion vector detector 12 determines the size of the variable-length block (step S11). According to a second operation, the motion vector detector 12 searches a motion vector using the variable-length block having the determined size (step S12). Finally, according to a third operation, the motion vector detector 12 determines a motion vector of a small block according to the motion vector of the variable-length block (step S13). Thereafter, based on the determined motion vector, the interpolative image generator 13 generates an interpolated frame image, and then, inserts it between the prior and subsequent frame images.
(First Motion Vector Detection)
When the second operation is carried out using the first operation result, and the third operation is carried out using the second operation result, there is no margin of processing timing. For this reason, as shown in
Specifically, each pixel value buffer of the prior and subsequent frames 31 and 33 is required in accordance with the foregoing three operations. The total buffer size is determined according to the following condition.
3*2*1920*128*30=44236800 bits
According to the first vector detection, as shown by the broken line of
In
In
The simple operation controller 26 stores the operation result from the block size determination unit 25 in a built-in memory, and thereafter, supplies it to the variable-length block processing unit 24. The controller 26 further stores the operation result from the variable-length block processing unit 24 in a built-in memory, and thereafter, supplies it to the fixed-length block processing unit 21. Thus, as shown in
(Second Motion Vector Detection)
The following method is given to solve the a problem of the buffer amount related to the foregoing three-stage operations executed in one frame processing cycle. According to the method, preferably, the operation is executed using the operation result before one or two frames.
In
According to the operation, as seen from
As a result, delay time equivalent to one frame is secured as time for supplying the operation result. The simple operation controller 26 stores the operation result from the block size determination unit 25 in a built-in memory, and thereafter, supplies it to the variable-length block processing unit 24 in the next interpolative frame processing cycle. The controller 26 further stores the operation result from the variable-length block processing unit 24 in a built-in memory, and thereafter, supplies it to the fixed-length block processing unit 21 in the next interpolative frame processing cycle. Therefore, time margin is sufficiently taken. In this way, the buffer is made correspondent to the same processing unit U position on different frame as seen from
According to this embodiment, the operation result of o frame image data and the operation result of −1 frame image are used for the first frame image operation. The use of the foregoing substitution operation result results from the following reason.
Specifically, there is a high possibility that the same pattern exists when interpolated frames before one and two are generated except time when scene is changed. Thus, as depicted in the lower portion of
Therefore, the operation result obtained by the prior interpolated frame processing cycle is used, and thereby, the buffer capacity is reduced to ⅓ of the conventional case as a result. As is evident from
The total buffer size is determined according to the same condition as described before.
1*2*1920*128*30+(1920/64)*(1080/16)*1+(1920/64)*(1080/16)*16=14780280 bits
The foregoing bit value is reduced to about ⅓ as compared with the configuration shown in
(Explanation of Each Operation Using Flowchart)
The foregoing three-stage operations will be detailedly explained below with reference to the following flowcharts.
Each step of the flowcharts shown in
First Operation
The first operation, that is, the procedure of determining a variable-length block size will be explained below referring to the flowchart of
The block size determination unit 25 of the interpolative frame generating apparatus 10 makes vector detection with respect to one processing unit frame image using a fixed-length block (S21). Then, the unit 25 calculates the smallest value from the vector detection result using the fixed-length block (step S22). Thereafter, the unit 25 determines whether or not a plurality of the minimum values satisfying the following expression (1) exists in the detection result using the fixed-length block (step S23).
|Smallest value−Minimum value i|<TH (1)
If a plurality of the minimum values dose not exist, there is no need of providing a variable-length block. The procedure proceeds to step S27. Then, the block size determination unit 25 determines a size of the variable-length block as zero (using fixed-length block only) (step S27). It is determined whether or not all fixed-length blocks in the processing unit are checked (step S28). If all fixed-length blocks in the processing unit are checked, the procedure ends. Conversely, if the fixed-length block in the processing unit remains, a detection target fixed-length block is moved one block (step S29) to continue the procedure from step S21.
The block size determination unit 25 moves the detection target fixed-length block only one if a plurality of motion vector candidates exists in step S23 (step S24) to make large the size of the variable-length block by one stage (step S25). Then, the unit 25 determines whether or not the size, which is made large, projects from the processing unit (step S26). If the size is sufficiently large, the procedure proceeds to step 27. Conversely, if the size is not large, the procedure returns to step S21 to continue the procedures after that.
The foregoing procedure is continued, and thereby, the method described before, that is, the method of detecting a periodical repeating pattern width is provided. According to the method, “area where some motion vector candidates are generated” is detected, and based on the width of the detected area, the size of the variable-length block (large block) is determined.
To give one example, the result of the “Size of area where some motion vector candidates are generated”≈ “Size of variable-length block (large block)” is obtained.
Preferably, “Area where some motion vector candidates are generated” ≈“Size of variable-length block (large block)”+a (constant) is set. However, the present invention is not limited to these relationships.
Second Operation
The second operation, that is, the procedure of determining a motion vector of a variable-length block will be explained referring to the flowchart of
The variable-length block processing unit 24 acquires a size of the operation result determined according to the operation of the prior interpolated frame processing cycle as shown in the flowchart of
The variable-length block processing unit 24 repeats the procedures of steps S31 to S34 until a motion vector is determined with respect to all variable-length blocks in the processing unit.
Third Operation
The third operation, that is, the procedure of determining a motion vector of a fixed-length block will be explained referring to the flowchart of
The fixed-length block processing unit 21 detects a vector using a fixed-length block as shown in the flowchart of
Then, the fixed-length block processing unit 21 determines whether or not a plurality of the minimum values satisfying the following expression (1) exists in the detection result using the fixed-length block (step S43).
|Smallest value−Minimum value i|<TH (1)
If a plurality of the smallest values dose not exist, a vector corresponding to the detected smallest value is selected as a motion vector of the block, and then, the procedure ends (step 47). Conversely, if a plurality of the smallest values exists, the selector 21 of the fixed-length block processing unit 23 refers to the vector detection result of the variable-length block, that is, the operation result of the prior interpolated frame processing cycle (step S44). Then, the selector 21 selects a vector corresponding to the minimum point nearest to the minimum point detected using the variable-length vector in the minimum point satisfying the expression (1) as motion vector of the block in (step S45). Thereafter, the selector 21 sends the selected vector to the interpolative image generator 13 (step S46).
The fixed-length block processing unit 21 determines whether or not the vectors of all fixed-length blocks in the processing unit are determined (step S48). If the vector is not determined with respect to all fixed-length blocks, the target fixed-length block is moved by one only (step S49), and thereafter, the procedures from steps S41 to S48 are repeated.
As described above, the foregoing procedures are carried out, and thereby, the size of the large block is flexibly variable with respect to an image including a periodical repeating pattern. In addition, it is possible to detect a motion vector having high accuracy corresponding to the image pattern. The operation result used for the operation is used for the prior interpolated frame processing cycle; therefore, the required total buffer amount is reduced.
An interpolated frame generated based on the operation result of the foregoing first to third operations of
The first operation of
In
The foregoing fixed-length block (small block) and variable-length block (large block) have two-stage size; however, these blocks may have three-stage or more size.
According to the features of the embodiment, the size of the large block is properly variable with respect to an image including a periodical repeating pattern. Thus, it is possible to detect a motion vector having high accuracy corresponding to the pattern, and to reduce the total buffer required for the detection.
While certain embodiments of the inventions have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Number | Date | Country | Kind |
---|---|---|---|
2007-225889 | Aug 2007 | JP | national |