[FFmpeg-user] minterpolate ...for Paul

Mark Filipak (ffmpeg) markfilipak at bog.us
Fri Jan 29 01:32:17 EET 2021


On 01/28/2021 02:55 PM, pdr0 wrote:
> Mark Filipak (ffmpeg) wrote
>>
>> In the video,
>>
>> Look at the behavior of the dots on the gate behind the police here:
>> 0:5.422 to 0:10.127.
>>
>> Look especially at the top of roof of the building here: 0:12.012 to
>> 0:12.179, for apparent
>> macroblock errors.
>>
>> Here's the video:
>>
>> https://www.dropbox.com/t/8sKE0jEguUxQgPjD
>>
>> Here's the command line:
>>
>> ffmpeg -i "source=24FPS.mkv" -map 0 -filter_complex
>> "minterpolate=fps=60000/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10:vsbmc=1:search_param=20"
>> -codec:v libx265 -x265-params "crf=20:qcomp=0.60" -codec:a copy -codec:s
>> copy minterpolate.mkv
> 
> 
> Those are not macroblock errors. They are typical optical flow errors...

Thank you, pdr0. I've never heard of "optical flow errors". What could they be? (Got any links to 
explanations?)

To me, the visual manifestation appears to be math errors inside the freshly interpolated 
macroblocks. The reason I 'say' that is because, though they appear to be sporadic, when a 
macroblock anomaly pops up, the effect is vary regular and persistent (not fleeting). In other 
words, the effect displays mathematical regularity.

>... Motion interpolation is never perfect , there are always some types
> artifacts, occlusions, edge morphing

Not with the regularity and persistence (longevity) I'm seeing.

> There are several other methods and algorithms you can use outside of
> FFmpeg, some are GPU accelerated. e.g. svpflow, mvtools2, DAIN, twixtor,
> resolve. ...

Thanks. That gives me something specific for search.

>...For artifacts around frame edges, letterbox edges usually some form
> of padding is used. I don't think ffmpeg minterpolate has those.

I've done that. The result was just okay. The slight riffling on the frame boundaries during camera 
panning isn't all that objectionable to me. It occurs to me that minterpolute could queue frames and 
look 'forward' to later frames in order to resolve boundary macroblock artifacts -- afterall, it has 
the motion vectors, eh?

That 'said', the slight riffling on the frame boundaries (example: At the end as the red tile tiles 
atop the wall come into view. If you slow the playback, it becomes quite evident that the same math 
errors are occurring there, but only sporadically, not constantly.

Look at the offending macroblocks carefully. As the scene pans outside those macroblocks, the scene 
inside the macroblocks gets 'stuck'. Since there was no time restraint on transcode, the 'stuck' 
symptom must be math errors -- in the case of segmented (macroblock) issues, math controls the logic.


More information about the ffmpeg-user mailing list