[FFmpeg-devel] [PATCH / RFC] Deshake / stabilize filter
Daniel G. Taylor
dan
Mon Apr 12 23:38:17 CEST 2010
On 04/12/2010 05:07 PM, compn wrote:
> On Mon, 12 Apr 2010 19:26:53 +0200, Michael Niedermayer wrote:
>> [ ... ]
>
> you might want to ask the author of this filter for some tips:
> http://www.guthspot.se/video/deshaker.htm
Already did and was shot down. He has no interest in porting or really
talking to me at all from what I can tell.
>>> 2. Get it into FFmpeg trunk
>>
>> this filter is very interresting but
>> could you look at motion_est* please, the code there likely can be used.
>> Changing or extending motion_est* so it has a nice public API would for
>> this be required but i think its the better approuch than having
>> each filter and codec duplicate motion estimation.
>
> seems like a lot of work for one filter author.
Agreed. I'm not sure I can take on such a large project messing with all
the internals of libavcodec, especially considering I'm just starting
out. My head is spinning just looking at those files and the size of
MpegEncContext.
>>> + * TODO:
>>> + * - Compensate for rotation (requires full transform, slower)
>>> + * - Zoom instead of filling frame edges (requires full transform, slower)
>>
>>> + * - Fill frame edges based on previous/next reference frames
>>
>> 1. allocate a larger internal picture
>> 2. for each frame match its contents to the larger picture and copy the new
>> frame in there. If no good match reset things and draw in the middle
>> 3. output center portion of the larger internal picture or smooth motion
>> to compensate for panning and output the resulting rectangle
>>
>> With this you not only fill in cornrs fron the next/prev frames but even
>> more distant frames.
>> And it might work for something else too. If you pan a cammera over a static
>> scene the internal picture should then contain the whole thing stitched
>> together
>
> content aware fill?
> http://www.logarithmic.net/pfh/resynthesizer
Good point; I had thought about this before too. I checked out the
algorithm and code for that thing and it seems doable, though it would
be very slow. A mixture of that and Michaels idea might produce some
very, very nice results though.
Take care,
--
Daniel G. Taylor
http://programmer-art.org/
More information about the ffmpeg-devel
mailing list