Pixel-data selection device to provide motion compensation, and a method thereof

A pixel-data selection device providing motion compensation, and a method thereof. A first and a second storage parts store a current frame/field including first pixel-data and a previous frame/field including second pixel-data, respectively, corresponding to at least one of the inputted candidate motion vectors. A first and a second pixel-data extraction parts extract the first and the second pixel-data corresponding to the candidate motion vector, respectively from the first and the second storage parts. A first and a second compensation pixel calculation parts calculate first and second compensation pixel-data for motion compensation, respectively, by adaptively applying a predetermined first weight according to the abstracted first and second pixel-data. Therefore, the first and the second pixel-data can be calculated based on motion trajectories of a current block to be interpolated and peripheral blocks, and thus, block artifacts can be prevented as the motion compensation is performed adaptively.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of Korean Application No. 2003-38787, filed Jun. 6, 2003, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a pixel-data selection device to provide motion compensation, and a method thereof, and more particularly, to a pixel-data selection device to provide motion compensation which extracts a plurality of pixel-data by applying a plurality of motion trajectories per block during frame rate conversion, and performs motion compensation by applying a weight to the extracted pixel-data, and a method thereof.

2. Description of the Related Art

Generally, in a PC or an HDTV, frame rate conversion is performed to exchange programs having various broadcasting signal specifications, such as PAL or NTSC. Frame rate conversion refers to converting of a number of frames output per minute. Moreover, in the case where the frame rate increases, a process of interpolating a new frame is required.

Meanwhile, as a broadcasting technology has developed recently, the frame rate conversion is performed after compressing an image data by an image data compressing method, such as a moving picture experts group (MPEG) and an H.263. Especially, in a field of image processing such as the MPEG processing, an image signal usually has redundancy due to high autocorrelation. Therefore, by removing the redundancy while compressing the data, efficiency of data compression can be improved. Here, for effective compression of a video frame which varies according to time, the redundancy in the time-axis direction should be removed.

The removal of the redundancy in the time-axis direction is based on a concept that an amount of data to be transferred is greatly reduced by replacing unchanged portions or moved-but-still-similar portions in a current frame with corresponding portions in an immediately preceding frame.

To make the replacement, it is necessary to find the most similar block between the current frame and a reference frame, which is called “motion estimation.” An indication of an amount of displacement of the block is called a “motion vector.”

One of typical methods to estimate motion vectors is a block matching algorithm (BMA). The BMA is generally used in consideration of precision, real-time processing ability, and hardware implementation and the like.

FIG. 1is a drawing illustrating a method of estimating motion vectors using a general conventional BMA.

Referring toFIG. 1, Fn−1is a previous frame/field, Fnis a current frame/field, and Fiis a  frame to be interpolated using the previous frame/field (Fn−1) and the current frame/field (Fn).

The Block Matching Algorithm compares two consecutive images, such as the previous frame/field and the current frame/field, by block units, and estimates one motion vector per block based on an assumption that the pixels in the compared blocks have translational movement. At this time, the motion vector is estimated using a well-known SAD (Sum of Absolute Difference) prediction error. When the motion vector is estimated, motion compensation is performed with respect to the current block (B), i.e., the block to be interpolated using the estimated motion vectors (MV).

However, the conventional method of estimating/compensating the motion may have an incorrect estimation of respective motion vectors estimated by blocks. If the motion compensation is performed with the incorrect motion vectors, block artifacts occur in the interpolation frame/field (Fi), as shown inFIG. 2. InFIG. 2, a solid line represents a true motion vector, and a dotted line is an estimated motion vector. The block artifacts occur since the motion compensation is performed by blocks, and thus the correlation between adjacent blocks at the boarder between the blocks is not considered. A conventional frame rate conversion (FRC) algorithm may employ a nonlinear filter, such as a median filter, to remove the block artifacts. However, the nonlinear filter is not remarkably effective, especially in preventing deterioration of image quality.

SUMMARY OF THE INVENTION

Accordingly, it is an aspect of the present invention to provide a pixel-data selection device to provide motion compensation, which is capable of preventing or removing block artifacts caused by inaccurately estimated motion vectors, in performing the motion compensation by estimating one motion vector per block, and a method thereof.

The foregoing and/or other aspects of the present invention are achieved by providing a pixel-data selection device to provide motion compensation, the device including a first storage part, a second storage part, first and a second pixel-data extraction parts, and first and a second compensation pixel calculation parts.

The first storage part can store a current frame/field which includes a first pixel-data corresponding to at least one of candidate motion vectors as inputted. The second storage part can store a previous frame/field which includes a second pixel-data corresponding to the at least one of the candidate motion vectors. The first and the second pixel-data extraction parts extract the first and the second pixel-data, which correspond to the at least one candidate motion vector, respectively, from the first and the second storage parts, respectively. Further, the first and the second compensation pixel calculation parts calculate, respectively, a first and a second compensation pixel-data for motion compensation, by adaptively applying at least one predetermined first weight according to the first and the second pixel-data. The calculated first and second compensation pixel-data are used for the motion compensation of a current block to be interpolated.

In particular, the first and the second pixel-data extraction parts can extract the first and the second zero pixel-data corresponding to a block having the candidate motion vector of zero, respectively from the first and the second storage parts, and the abstracted first and second zero pixel-data can be used for the motion compensation of the current block.

In addition, the first and the second compensation pixel calculation parts respectively multiply the first and the second pixel-data by the first weights, which is adaptively applied according to the first and the second pixel-data, and add the results of the multiplication to obtain the first and the second compensation pixel-data, respectively.

The sum total of the first weights applied by the first and the second pixel-data is 1.

Further, the candidate motion vector may include the motion vector of the current block in the current frame/field and a motion vector of at least one peripheral block adjacent to the current block.

At least one of the candidate motion vectors is a vector estimated from a position corresponding to the minimum value, among a plurality of motion prediction errors calculated by applying a block matching algorithm with respect to the current block and the respective peripheral blocks.

In an aspect of the invention, the first weight, which is applied according to at least one of the first and the second pixel-data, is inversely proportional to the motion prediction error calculated by the current block and the peripheral blocks.

The motion prediction error may be calculated by a sum of absolute difference (SAD) or a mean absolute difference (MAD).

In addition, the pixel-data selection device may further include a first delay device to delay an inputted frame/field for a predetermined time period, and to supply the delayed current frame/field to the first storage part, and a second delay device to delay the current frame/field inputted from the first delay device, for a predetermined time period, and to supply the delayed previous frame/field to the second storage part.

The first and the second pixel-data extraction parts extract at least one of the first and the second pixel-data by estimating motion trajectories by at least one of the candidate motion vectors.

The first and the second storage parts store adjacent fields of the same property, and the fields of the same property are one of an odd field and an even field.

In addition, the device may further include, with the frame/field being inputted by a field unit, a first delay device to delay an inputted field for a predetermined time period, and to supply the delayed first field to the first storage part, a second delay device to delay the first field inputted from the first delay device, for a predetermined time period, and to output the delayed second field, and a third delay device to delay the second field inputted from the second delay device, for a predetermined time period, and to supply the delayed third field to the second storage part, wherein the first and the third fields are of the same property.

The foregoing and/or other aspects of the present invention are also achieved by providing a method of pixel-data selection for motion compensation, of the method comprising: storing a current frame/field including at least one of a first pixel-data corresponding to at least one of candidate motion vectors as inputted, storing a previous frame/field including at least one of a second pixel-data corresponding to the at least one of the candidate motion vectors, extracting the first and the second pixel-data, which respectively correspond to the at least one candidate motion vector, respectively, from the first and the second storage parts; and calculating respectively the first and the second compensation pixel-data for motion compensation, by adaptively applying at least one predetermined first weight according to the first and the second pixel-data. The calculated first and second compensation pixel-data are used for the motion compensation of a current block to be interpolated.

More particularly, the first and the second pixel-data extracting operations extract the first and the second zero pixel-data corresponding to a block having the candidate motion vector of zero, respectively from the first and the second storage parts, and the extracted first and second zero pixel-data are used for the motion compensation of the current block.

The first and the second compensation pixel calculating operations multiply the first and the second pixel-data by the first weights, respectively, which are adaptively applied according to the first and the second pixel-data, and add the results of the multiplication to obtain the first and the second compensation pixel-data, respectively.

In an aspect of this invention, the pixel-data selection method further includes the operations of, prior to the current frame/field storing operation, delaying an inputted frame/field for a predetermined time, and outputting the delayed current frame/field, and prior to the previous frame/field storing operation, delaying the current frame/field inputted from the first delay device, for a predetermined time, and supplying the delayed previous frame/field to the second storage part.

The first and the second pixel-data extracting operations extract at least one of the first and the second pixel-data by estimating motion trajectories by at least one of the candidate motion vectors.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 3is a block diagram schematically illustrating a motion estimation/compensation device where a pixel-data selection device is installed according to an embodiment of the present invention.

Referring toFIG. 3, a motion estimation/compensation device300installed with a pixel-data selection device according to this embodiment of the present invention may include a first delay device310, a second delay device320, a motion estimation part330, a pixel-data selection part340and a motion compensation interpolation part370. The present invention relates to a frame rate conversion or an MPEG technique to estimate a plurality of motion vectors and to compensate the motion vectors, and will be described only with reference to blocks that are related to the motion estimation/compensation.

The first delay device310delays an inputted frame/field for a predetermined time period, and provides the first delay frame/field to the second delay device320and a first storage part341. The second delay device320delays the first delay frame/field inputted from the first delay device310, and provides the second delay frame/field to the second storage part361. Hereinafter, the first delay frame/field is referred to as the current frame/field (Fn), and the second delay frame/field is refered to as the previous frame/field (Fn−1).

Meanwhile, in a case where the motion estimation/compensation device300, installed with the pixel-data selection device according toFIG. 3, converts a frame rate of an image which is inputted by interlacing, the first delay frame/field is the current frame/field (Fn), and the second delay frame/field is the previous frame/field (Fn−1). Therefore, when the previous field is an odd or an even numbered field, the current field becomes an even or an odd numbered field, respectively, corresponding to the previous field.

The motion estimation part330estimates the motion vectors between the previous frame/field (Fn−1) and the current frame/field (Fn) through BMA. To estimate the motion vectors, the motion estimation part330has a motion vector estimation part332and a motion prediction error calculation part334.

The motion vector estimation part332divides the current frame/field (Fn) into blocks of a predetermined size to be interpolated, and calculates a plurality of motion prediction errors with respect to the respective blocks to be interpolated by matching the divided blocks with a plurality of blocks constituting the previous frame/field (Fn−1) respectively, in a single direction.

More specifically, the motion vector estimation part332sets up a predetermined searching range S, as shown inFIG. 4A, in the current frame/field (Fn) which is divided into the blocks of predetermined sizes. The motion vector estimation part332also calculates a plurality of motion prediction errors with respect to the respective blocks to be interpolated by matching the blocks to be interpolated in the searching range with a plurality of blocks constituting the previous frame/field (Fn−1) respectively, in a single direction, or in two directions.

The motion prediction error can be calculated by a variety of methods such as by a Sum of Absolute Difference (SAD) method, a Mean Absolute Difference (MAD) method and the like. The SAD is employed in this embodiment of the present invention.

When a plurality of SADs are calculated with respect to the respective blocks to be interpolated, the motion vector estimation part332estimates the motion vectors of the respective blocks using an Equation 1 below.
ν=argminνεS{Φ(ν)}  [Equation 1]

Referring to [Equation 1], φ(v) is an SAD, v is a motion vector of a block having a minimum SAD (from now on, ‘v’ represents a vector), and S is the searching range. The motion vector estimation part332estimates the motion vectors of the respective blocks to be interpolated starting from a position which includes the minimum SAD among a plurality of SADs calculated by the respective blocks to be interpolated.

When the final motion vector of the current block B0to be interpolated is v0inFIG. 4B, the final vectors of the peripheral blocks B1to B8are v1to v8, respectively.

Meanwhile, the searching range S, set up in the current frame/field Fn, refers to an area to be interpolated in interpolation frame/field Fi. The number of blocks existing in the searching range S can be set up variously according to the size of the blocks and/or the searching range S.

Further, the motion vector estimation part332provides the motion prediction error calculation part334with a zero motion vector vz, of which the motion vector of the current block B0to be interpolated, as well as the motion vectors v0to v8of the respective blocks B0to B8existing in the searching range S, is zero. This is because compensating regardless of the motions is more correct than estimating the motion vectors by BMA in a case where the motions are complicated and not in a translation movement, in a process of the motion compensation. The motion compensation process will be described below.

The motion prediction error calculating part334extracts the SAD corresponding to the motion vectors vzand v0to v8supplied from the motion vector estimation part332, using an [Equation 2] below.

Here, Φ(νi) represents the SAD corresponding to the respective motion vectors v0to v8, x represents a vector as a coordinate data of a predetermined pixel located in a predetermined block which is one of B0to B8, virepresents motion vectors v0to v8of the respective blocks B0to B8, n represents time intervals between the previous frame/field (Fn−1) and the current frame/field (Fn), and M represents the number of the respective blocks B0to B8existing in the searching range S. The motion prediction error calculation part334also extracts the SAD with respect to the zero motion vector vzof the current block B0to be interpolated, using the [Equation 2].

Referring to [Equation 2], the motion prediction error calculation part334extracts the SAD corresponding to the motion vectors v1to v8of the respective peripheral blocks B1to B8and the zero motion vector vz, among all the SADs calculated with respect to the current block B0. That is, the motion vectors vzand v0to v8, which are provided by the motion vector estimation part332, are applied as candidate motion vectors of the current block B0to be interpolated.

This is performed in order to do motion compensation more accurately when the motion vector v0of the current block B0is inaccurately estimated, by replacing motion vectors of better-estimated blocks among the peripheral blocks B1to B8, i.e., a block having the minimum SAD, with the final motion vector of the current block B0, or performing the motion compensation more correctly by applying a weight to pixels corresponding to the better-estimated peripheral blocks B1to B8.

That is, the motion compensation, according to this embodiment of the present invention, is performed considering the motion trajectories of the peripheral blocks B1to B8as well as the current block B0, assuming that motions between the blocks B0to B8are smooth. This is to prevent the occurrence of block artifacts caused when the motion vector v0of the current block B0is inaccurately estimated, as illustrated, for example, inFIG. 2.

Meanwhile, when the SADs corresponding to the respective candidate motion vectors vz, v0to v8are extracted out, the motion prediction error calculation part334supplies the respective SADs to first and the second compensation pixel calculation parts353and363.

Further, first and second pixel-data extraction parts352and362, respectively, are provided with the motion trajectories considered by the motion vectors of the respective blocks B0to B8estimated from the motion vector estimation part332, or provided with the motion vectors (not shown) which are estimated with respect to all the divided blocks (not shown).

FIG. 5schematically illustrates motion trajectories with respect to a predetermined position of a frame/field to be interpolated, using the final motion vector of the current and the peripheral blocks.

Referring toFIG. 5, Fn−1is a previous frame/field, Fnis a current frame/field, and Fiis a frame/field to be interpolated. The previous frame/field (Fn−1) and the current frame/field (Fn) are inputted consecutively. A temporary compensation pixel-data with respect to the certain position of the interpolation frame/field (Fi) is calculated by using an [Equation 3] below.

Here, (n-½) represents a temporal position of the frame/field (Fi) to be interpolated, fi(x, n-½) represents a temporary compensation pixel-data of the interpolation frame/field (Fi) at the x position, and virepresents the final motion vector v0of the current block B0, and the final motion vectors v1to v8of the peripheral blocks B1to B8.

Referring to the [Equation 3] above, M represents the number of the considered motion trajectories. The temporary compensation pixel-data fi(x, n-½) at the x position, which is obtained by a plurality of motion trajectories, is calculated while considering the plurality of final motion vectors v0to v8which are calculated from the [Equation 2]. In this manner, the block artifacts, which are usually caused due to inaccurately estimated final motion vector v0of the current block B0, can be prevented.

Meanwhile, for the candidate motion vectors v0to v8of the current block B0to be interpolated as described, not only the final motion vectors v0to v8with respect to the peripheral blocks B1to B8, but also global motion vectors detected through a motion analysis process and motion vectors detected in the previous frame/field of the same position, can be re-used. Further, the transformed motion vectors, which are obtained by a median filter of the candidate motion vectors or an average filter, can be used for the candidate motion vectors of the current block B0.

Referring toFIG. 3, the pixel-data selection part340selects at least one compensation pixel using pixel-data of pixels constituting a frame/field inputted therein, a plurality of SADs provided by the motion estimation part330, and the candidate motion vectors. To select at least one compensation pixel, the pixel-data selection part340according to this embodiment comprises a first storage part351, the first pixel-data extraction part352, the first compensation pixel calculation part353, a second storage part361, the second pixel-data extraction part362, and the second compensation pixel calculation part363.

In the first storage part351, pixel-data of the pixels constituting the current frame/field (Fn) inputted from the first delay device310are temporarily stored.

The first pixel-data extraction part352extracts the first pixel-data I0to I8corresponding to the respective final motion vectors v0to v8inputted from the motion vector estimation part332, starting from the pixel-data of the current frame/field (Fn) stored in the first storage part351. The first pixel-data I0to I8is expressed by an [Equation 4] below.
li=fi(x-vi/2,n), i=0, 1. . . , M[Equation 4]

Referring to [Equation 4], the pixel-data extracted by the first pixel-data extraction part352have the first pixel-data I0to I8, and the number of the first pixel-data corresponds to the number of the candidate motion vectors which are estimated at the motion estimation part330.

In addition, the first pixel-data extraction part352extracts from the first storage part351the first pixel-data Izcorresponding to the zero motion vector vzinputted from the motion vector estimation part332, and supplies the first pixel-data to the motion compensation interpolation part370. Here, the first pixel-data extraction part352may recognize the candidate motion vector having zero value as the zero motion vector vz, and extracts a compensating pixel-data Izfor a block having a candidate motion vector which is zero.

The first compensation pixel calculation part353considers accuracy at the respective motion trajectories using the SAD corresponding to the respective blocks B0to B8inputted from the motion estimation error calculation part332, and applies a predetermined weight to the respective temporary compensation pixel-data calculated by the [Equation 3]. That is, the first compensation pixel calculation part353calculates the first compensation pixel-data I′ which is applied with the weight, using [Equation 4] to [Equation 7].

Here, the weight wineeds to satisfy [Equation 6], and the weights with respect to the respective motion trajectories are calculated by [Equation 7].

Referring to [Equation 5] through [Equation 7], the first compensation pixel-data I′ calculated from the first compensation pixel calculation part353, are as follows. This is because riis zero since only pixel-data with respect to the current frame/field (Fn) are stored in the first storage part351.

In addition, the weight wiwith respect to the respective motion trajectories is inversely proportional to the minimum SADs of the respective blocks B0to B8. That is, the first compensation pixel calculation part353recognizes that the smaller the minimum SAD is, in comparing the minimum SADs of the respective blocks B0to B8, the more accurate motion estimation has been performed, and therefore applies the weight wiwhich is inversely proportional to the minimum SADs. That is, the accuracy in the respective motion trajectories is determined depending on the SADs.

On the other hand, in the second storage part361, pixel-data of the previous frame/field (Fn−1) inputted from the first delay device310is temporarily stored.

The second pixel-data extraction part362extracts the second pixel-data r0to r8, respectively, corresponding to the final motion vectors v1to v8inputted from the motion vector estimation part332, from the pixel-data of the previous frame/field (Fn−1) stored in the second storage part361. The second pixel-data r0to r8are calculated by an [Equation 8] below.
ri=fi(x-νi/2,n), i=0, 1, . . . , M[Equation 8]

Referring to the [Equation 8], the pixel-data extracted out from the second pixel-data extraction part362have the second pixel-data r0to r8, respectively. Further, the second pixel-data extraction part362extracts the second pixel-data rzcorresponding to the zero motion vector vzinputted from the motion vector estimation part332, from the second storage part361. The second pixel-data extraction part362may recognize the candidate motion vector having zero value as the zero motion vector, and extracts the compensating pixel-data rzcorresponding to a block having the candidate motion vector which is zero.

The second compensation pixel calculation part363considers accuracy at the respective motion trajectories using the minimum SADs of the respective blocks B0to B8inputted from the motion estimation error calculation part332, and applies a predetermined weight to the respective temporary compensation pixel-data calculated by the [Equation 3]. That is, the second compensation pixel calculation part363calculates the second compensation pixel-data r′ which is applied with the weight, using the [Equation 5] to [Equation 8].

Referring to [Equation 5] to [Equation 8], the second compensation pixel-data r′ calculated at the second compensation pixel-data calculation part363is as follows. This is because Iiis zero since only pixel-data with respect to the previous frame/field (Fn−1) are stored in the second storage part361.

As described above, the pixel-data selection part340calculates or extracts the first and the second compensation pixel-data I′ and r′, respectively, and the first and the second pixel-data Izand rz, respectively, for temporal averaging, and supplies the data to the motion compensation interpolation part370.

The motion compensation interpolation part370calculates the final interpolation pixel-data f using a soft switching value k inputted from a reliability calculation part (not shown). The final interpolation pixel-data f is calculated by the following [Equation 9].

In the [Equation 9], k is the soft switching value to adaptively apply the first and the second compensation pixel-data I′ and r′, respectively, for the motion compensation, and also the first and the second pixel-data Izand rz, respectively, which are irrespective of the motion. The value k is determined according to the reliability of the first and the second compensation pixel-data I′ and r′, respectively. That is, when the reliability of the first and the second compensation pixel-data I′ and r′, respectively, are higher than that of the first and the second pixel-data Izand rz, respectively, k increases to calculate the final interpolation pixel-data f to which more of the first and the second compensation pixel-data I′ and r′, respectively, are applied. On the other hand, when the reliability of the first and the second compensation pixel-data I′ and r′, respectively, are lower than that of the first and second pixel-data Izand rz, respectively, k decreases to calculate the final interpolation pixel-data f to which more of the first and the second pixel-data Izand rz, respectively, are applied.

Accordingly, there can be provided an image with less block artifacts phenomenon, as illustrated inFIG. 6, by employing the final interpolation pixel-data f considering a plurality of the motion trajectories, based on an assumption that motions between the blocks are smooth. InFIG. 6, the solid line refers to the estimated motion vector.

Meanwhile,FIG. 7is a block diagram schematically showing the motion estimation/compensation device according to another embodiment of the present invention.

Referring toFIG. 7, the motion estimation/compensation device700includes a first delay device710, a second delay device715, a third delay device720, a motion estimation part730, a pixel selection part740and a motion compensation interpolation part770. Since the present invention relates to the frame interpolation which compensates the motion by estimating a motion, the frame rate conversion device (not shown) will be described by illustrating the block related to the motion estimation/compensation only.

The motion estimation/compensation device700performs motion compensation using adjacent fields of the same property, and includes the motion estimation part730, the pixel selection part740and the motion compensation interpolation part770ofFIG. 7, of which a detailed description will be omitted since they are identical or similar in functions with the motion estimation part330, the pixel-data selection part340and the motion compensation interpolation part370ofFIG. 3.

Yet, while the motion estimation/compensation device300ofFIG. 3provides frame rate conversion of an image signal inputted by a frame unit or a field unit, the motion estimation/compensation device700ofFIG. 7is directed to providing frame rate conversion of an image signal which is inputted by a field unit. That is, while the motion estimation/compensation device300calculates the final interpolation pixel-data f for motion compensation between frames or between an odd field and an even field, the motion estimation/compensation device700of this embodiment calculates the final interpolation pixel-data f between odd fields or between even fields.

To be more specific, when a field outputted from the first delay device710is a first odd field, a field outputted from the second delay device715is a first even field, and a field outputted from the third delay device720is a second odd field. That is, the first odd field is the current field, and the second field is the previous field.

Also, the motion vector estimation part732estimates a plurality of motion vectors for the motion compensation between the first and the second odd fields having the same property. The motion vector can be estimated by calculating the motion prediction error. The motion prediction error calculation part734extracts the motion prediction error corresponding to the estimated motion vector, among the calculated motion prediction errors. According to the embodiments of present invention, the SAD is used for the motion prediction error.

The pixel selection part740calculates at least one compensation pixel Iz, rz, I′, r′, using the pixel-data of the first and the second field inputted from an outside source, a plurality of the final motion vector and a plurality of SADs. For this, the pixel selection part740according to this embodiment includes a first storage unit751, a first pixel-data extraction part752, a first compensation pixel abstraction part753, a second storage unit761, a second pixel-data extraction part762, and a second compensation pixel abstraction part763, similar to the embodiment ofFIG. 3.

The motion compensation interpolation part770calculates the final interpolation pixel-data f according to the soft switching value k, using the first and the second compensation pixel-data I′ and r′, respectively, supplied from the pixel selection part730, and the first and the second pixel-data Izand rz, respectively.

The motion compensation interpolation part770calculates the final interpolation pixel-data f using the soft switching value k inputted from the reliability calculation part (not shown). The final interpolation pixel-data f is calculated by the [Equation 9].

FIG. 8is a flowchart schematically illustrating the motion estimation/compensation method of estimating motion vectors by selecting pixel-data according toFIG. 3.

RegardingFIG. 8, first the first delay device310delays the inputted frame/field for a predetermined time period and outputs the current frame/field. The second delay device320delays the current frame/field (Fn) for a predetermined time period and outputs the previous frame/field (Fn−1). The outputted current frame/field (Fn) and the previous frame/field (Fn−1) are stored in the first and the second storage parts351and361, respectively, in operation S810.

When the frame/field is inputted by interlacing, the current frame/field (Fn) is an odd or an even field, and the previous frame/field (Fn−1) is an even or an odd field.

In addition, the motion estimation part330calculates the minimum SADs with respect to the current block B0to be interpolated and the peripheral blocks B1to B8, respectively, using the BMA. Further, the motion estimation part330estimates the respective final motion vectors v0to v8from the respective positions having the minimum SADs, and extracts the SADs corresponding to the current block B0to be interpolated and the peripheral blocks B1to B8, respectively, in operation S820. Here, the final motion vectors v0to v8with respect to the current block B0to be interpolated and the peripheral blocks B1to B8are designated as the candidate motion vector of the current block B0.

When there is a zero motion vector vzhaving zero value among the final motion vectors v0to v8which are estimated in operation S820, the pixel-data selection part340extracts the first and the second pixel-data Iz, Ii, rz, ri(here, i=0, 1, . . . , M) corresponding to the plurality of candidate motion vectors including the zero motion vector vzin operation S830.

When operation S830is completed, the pixel-data selection part340calculates a predetermined weight to apply to the extracted first and second pixel-data Iz, Ii, rz, ri(here, i=0, 1, . . . , M), using [Equation 7] in operation (S840). Then, the pixel-data selection part340calculates the first and the second compensation pixel-data I′ and r′, respectively, which are applied with the weight, using [Equation 5] in operation S850.

When operation S850is completed, the motion compensation interpolation part370calculates the final compensation pixel-data f by adaptively applying the soft switching value k to the calculated first and second compensation pixel-data I′ and r′, respectively, in operation S860.

According to the motion estimation/compensation devices300and700and the method of the same as described above, in performing the motion compensation of the blocks to be interpolated, the final motion vectors v1to v8of the peripheral blocks B1to B8as well as the final motion vector v0of the current block B0, are used. That is, after SADs are calculated in the respective motion trajectories using the final motion vectors v0to v8of the current block B0and the peripheral blocks B1to B8the weight is calculated using the SADs. Further, the block artifacts occurring when the final motion vector v0of the current block B0is inaccurate, as shown inFIG. 2, can be prevented by applying the weight inversely proportional to the calculated SADs. That is, in the image outputted from the motion estimation/compensation device300according toFIG. 3, the block artifacts phenomenon is removed, as illustrated inFIG. 6.

As described above, the motion estimation/compensation device300, capable of selecting the compensating pixel-data according to the embodiment ofFIG. 3, extracts a plurality of compensating pixel-data to interpolate the current block B0by estimating not only the motion vector of the current block B0, but also the motion vector of the peripheral blocks B1to B8adjacent to the current block. Accordingly, by considering the plurality of motion trajectories by the plurality of extracted compensating pixel-data, the block artifacts can be prevented or reduced, which is caused by an inaccurate estimation of the motion vector of the current block B0. In addition, hardware can be more simply structured since all the motion trajectories which can be considered for a plurality of motion vectors are applied without additional processes.