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>
______________________________________________________

Reply via email to