Stefan Gehrer <[EMAIL PROTECTED]> added the comment: I have implemented a simple version of this filter as a mplayer video filter: The energy function I use is gradient magnitude produced by either a Sobel or a simpler derivative filter and then the shrinking (no enlarging implemented yet) is done by repeating the same process for every reduction by one pixel width/height and of course done frame by frame. This shows two problems:
1. Speed. Even on my Core2 E8400 reducing a CIF image by 20 pixels in width is slower than real-time. Fixing this would not only require MMX-optimizations but a complex non-recursive implementation to avoid recalculating unchanged gradients and seam locations. 2. Object stability. Imagine an object surrounded by a low-energy background. When trying to find 10 seams to crop out, the algorithm could find two to the left of it and eight to the right, but in the next frame it finds seven to the left and three to the right of it because the energy levels are just so close together. Therefore the object itself starts jumping left and right from frame to frame. Fixing this would require some temporal filtering of the seam locations, but I currently have no good idea how to do this. ______________________________________________________ FFmpeg issue tracker <[EMAIL PROTECTED]> <https://roundup.mplayerhq.hu/roundup/ffmpeg/issue131> ______________________________________________________