# [Ffmpeg-devel] Snow motion blocks

Guillaume Poirier poirierg
Fri Apr 15 14:39:34 CEST 2005

```Hi,

On 4/15/05, Tuukka Toivonen <tuukkat at ee.oulu.fi> wrote:
> On Fri, 15 Apr 2005, Michael Niedermayer wrote:
>
> > one situation where bilinear might be supperior is very noisy video [...]
>
> Indeed, as bilinear smoothes the image more than higher order filter
> which is designed just to translate the image.
>
> It might be useful to filter input video with some specially
> designed noise-removal filter before using it for motion compensation.
> Even more useful would be to remove noise before encoding (unless
> there are people who like noise).
>
> If you have SSD(x,y) (sum of squared differences, which is closely related
> to PSNR) for a reference block at integer MV (x,y) then the SSD at
> (x+1/2,y) after bilinearly interpolating the reference block into half
> pixel location is actually SSD(x,y)/2 + SSD(x+1,y)/2 - D(x,y)/4
> where D(x,y) is the squared sum of differentials at the reference blocks...
> in other words, it is the difference after subtracting the two reference
> blocks at integer pixels locations. If the blocks are very similar,
> D is small, but if the picture has noise, the D term is large, and
> therefore SSD is much smaller and PSNR higher at the half-pixel location.
>
> That about the mathematical explanation... details are in
> http://www.ee.oulu.fi/%7Etuukkat/rel/efficient_method_for_half-pixel_block_motion_estimation_using_block_differentials.pdf
> (sorry for the ad :)

from the abstract:
"The estimation quality is superb, in some cases even slightly better
than the conventional method, but with 44% less computation.
Alternatively, computation can be decreased by 94% with only small
penalty on quality."

Hey Tuukka, if this algorithm/method is so great, how come you did not
port it to lavc, XviD or x264? That your be awesome! :)

... or maybe it's patented?

Regards,

Guillaume

```