私は、N 枚の画像を含むアニメーションを入力として受け取り、M フレーム (M は 2N から 5N 程度の範囲) を含むアニメーションを出力できるもの (できれば FOSS ソフトウェア) を探しています。
一般的な手法は「テンポラル アップサンプリング」または「インビトウィーン」(または略して「トゥイーン」) と呼ばれていると思います。シーン内の動きを追跡するには、ある程度の努力が必要です (「オプティカル フロー」)。キーフレーム間のフェード (「ディゾルブ」) だけでは不十分です。「テンポラル アップサンプリング」を Google で検索すると、このテーマに関する論文が多数見つかりますが、この手法を試すために使用できるコードやソフトウェア (gstreamer プラグインが最適) はまだ見つかっていません。
助言がありますか ?
追加情報:「モーション補間」私が探しているものについては、テレビの世界でより広く使われている名前のようです。これそしてそのビデオここでも同様です。興味深いことに、映画ファンの中には、これらの技術が 24FPS の映画に与える影響を嫌う人もいるようです。たとえば、「『風と共に去りぬ』がビデオで撮影されたメロドラマのように見える」というコメントがあります。
答え1
のMVツールプラグインAVISynth実行するフレーム補間。アビシンセ(ソースフォージ) はスクリプト ベースのビデオ編集ツールです。実行する操作をスクリプト テキスト ファイルで定義します。
再生しなければならなかったスクリプトチャーリー・ウィルソンの戦争120fpsの場合:
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)
はい、それは破壊します映画品質24fps を超えるものに変換する場合。
答え2
短い答え:
現在の技術では、これを機能させるには多くの手作業が必要です。
より長い答え:
「中間」画像 (いわゆるオプティカル フロー) を取得する通常の方法は、両方の画像 (ソース、デスティネーション) のポイントをマッピングし、2 つの画像間の変換を計算することです。もちろん、さまざまなオブジェクト (Blob、カーネル ベース、輪郭など) を追跡するエッジ検出アルゴリズムや予測アルゴリズムはありますが、「現実」の動画の変換を完全に自動化することは、せいぜい実験的なものです。
答え3
スローモーションビデオ
slowmoVideo は、映像からスローモーション ビデオを作成するオープンソース プログラムです。
しかし、これは単にビデオを 0.01 倍の速度で再生するだけではありません。オプションでモーション ブラーを使用して、映像をスムーズに遅くしたり速くしたりできます。
スローモーションはどのように機能しますか? slowmoVideo は、ビデオ内でピクセルが移動する場所 (この情報はオプティカルフローと呼ばれます) を検出し、この情報を使用して追加のフレームを計算します。
Gstreamer スローモーション プラグイン
このプラグインは slowmovideo のコードを使用しており、QT と ffmpeg に基づく独自の内部デコード「フレームワーク」から gstreamer に移植されています。