tim*_*day 5 video graphics animation images
我正在寻找一些东西(以前是 FOSS 软件),它可以将 N 个图像的动画作为输入,并输出 M 帧的动画,其中 M 的范围在 2N 到 5N 左右。
我相信通用技术被称为“时间上采样”或可能是“中间”(或简称“补间”)。请注意,它确实需要做一些努力来对场景中的事物进行运动跟踪(“光流”);关键帧之间的淡入淡出(“溶解”)不会削减它。谷歌搜索“时间上采样”会找到有关该主题的任意数量的论文,但我还没有发现任何代码/软件(gstreamer 插件将是完美的)我可以用来尝试该技术。
有什么建议 ?
附加信息:“运动插值”似乎是我正在寻找的电视世界中使用更广泛的名称。也可以在这里看到这个和视频。有趣的是,一些影迷似乎讨厌这些技术对 24FPS 电影的影响:例如,评论“让乱世佳人看起来像一部用视频拍摄的肥皂剧”。
AVISynth的MVTools插件执行帧插值。AviSynth ( sourceforge ) 是一个基于脚本的视频编辑工具。您可以在脚本文本文件中定义要执行的操作。
我必须以 120 fps 播放《查理·威尔逊的战争》的脚本:
cyia.avs
:
source = DirectShowSource("Cyia Batten - Charlie Wilson's War.avi")
# assume progressive NTSC Film 23.976 source
# Fast Search
#============
# we use explicit idx for more fast processing
#backward_vec = source.MVAnalyse(blksize=16, isb = true, chroma=false, pel=1, searchparam=1, idx=1)
#forward_vec = source.MVAnalyse(blksize=16, isb = false, chroma=false, pel=1, searchparam=1, idx=1)
# Slow Search
# ===========
# Use block overlap, halfpixel accuracy and Exhaustive search
backward_vec = source.MVAnalyse(overlap=4, isb = true, pel=2, search=3, idx=1)
forward_vec = source.MVAnalyse(overlap=4, isb = false, pel=2, search=3, idx=1)
#double framerate
#source.MVFlowFps(backward_vec, forward_vec, num=2*FramerateNumerator(source), den=FramerateDenominator(source), idx=1)
#triple framerate
#source.MVFlowFps(backward_vec, forward_vec, num=3*FramerateNumerator(source), den=FramerateDenominator(source), mask=0, idx=1)
#120fps
source.MVFlowFps(backward_vec, forward_vec, num=120, den=1, mask=0, idx=1)
Run Code Online (Sandbox Code Playgroud)
是的,当转换为高于 24fps 时,它确实会破坏电影质量。