「VIP」は「vulkan_interp_python」の略です。
2025/5/24現在、バージョンは「0.60」です(適当)。
このソフトで使用している「ffmpeg」と「rife-ncnn-vulkan」ですが、ffmpegの方は商用利用不可となっています。
rife-nenn-vulkanについてはこちらのページをご覧ください。
以前、この記事で取り上げましたソフトをpythonで書き直し、WindowsとUbuntuの両方のOSに対応させました。
最近はフレーム補間なんてリアルタイムでグラフィックスカードが対応するのでめずらしくもありませんが、このソフトはアニメのような2コマ打ちや3コマ打ちといった重複フレーム分も考慮に入れて補間するところに違いがあります。
更に今回python化にあたり、動画中のフェードイン、フェードアウトといったわずかずつ変化するシーンも映像が破綻することなく補間させることにも対応しました。
それではいってみましょう。
動作条件
上記記事でも触れていますが、vulkanで動作するのでGPUは選びません。
とはいえ、最低でもvulkanに対応している必要はあります。
逆に言うと、vulkanに対応していればCPUに内蔵されたGPUでも動作します。
pythonをインストールする必要があります。
https://www.python.org/downloads/release/python-3123/
バージョンはなんでも良いとは思いますが、私が開発した環境はUbuntuのpython3.12.3でしたので、そのバージョンのリンクを貼っておきます。

「add python 3.12.3 to path」にチェックを入れてインストールしましょう。
Linuxの方はpythonのインストールの必要はありません。
注意点
OneDriveを有効化している場合は、処理中に止まる可能性があります。
それと、家にある環境でウイルスバスター入りのPCは、途中で処理を中断されました。
この手のソフトを使っている人はあまりいないと思いますが、注意しましょう。
ダウンロード
OSに対応したバイナリファイルが圧縮してあります。
GitHubのリンクはこちらです。
使い方(Windows編)
ダウンロードしたzipファイルを解凍して出来た「vulkan_interp_python.exe」をダブルクリックして立ち上げます。




使い方(Ubuntu編)






Ubuntuでは「ffmpeg」のダウンロードは自動で行いません。
sudo apt install ffmpeg
などで、自分でインストールしましょう。
それぞれのグラフィックスドライバをインストールしておけば、ハードウェアエンコードの「VAAPI」は動作すると思いますが、どうしても動かない場合は以下のとおりビルドして下さい。
もしハードウェアエンコードを使う場合は「VAAPI」を使うのでこの記事を参考に。
ソフトウェアエンコードの「AV1」を使う場合はこの記事を参考に。
もしintel ARCを使っていて、個別に対応するのが面倒な場合はこの記事を参考にしてください。
以上でUbuntu版の準備は完了です。
メイン画面の説明

「START!」
補間処理のスタートボタンです。

「STOP」
処理を中断するボタンです。
処理関数単位で止めるので、現状あまり約にたちません。
実際に止めるのは、ウインドウの「X」ボタンで止める事になろうかと思います。
「設定を変更」
以下で説明しています。
設定項目の説明

「倍率」
最終的なフレームの倍率です。案外時間がかかるので、始めは少なめの倍率でいきましょう。
「GPU番号」
0,1,2のいづれかが選べます。本当はすべて並列で動作させる事もできるのですが、現状ではどれか一つだけです。今後のアップデートで対応するかもしれません。
「0」ってどれのことよ?という尤もな疑問もあろうかと思いますが、これはシステムによって変わるのでなんとも言えません。通常「0」は内蔵GPUが無い場合はディスクリートGPUを指します。
いろいろ試してみてください。
「プロセス数」
重複したフレームを削除した画像ファイル群の、画像が抜けた部分をrifeを使ってフレーム補間する時のプロセス数の指定です。
使っているPCによって最適な値は変わってきますが、CPUの持っている論理コア数を超えて指定してもあまり意味はないようです。自分が試した限りでは、ちょっと少なめが良いかも。
「pythonコマンド」
「python」と「python3」。
通常気にする必要はありません。
説明どおりにpythonをインストールすれば、特にいじる必要はありません。
プログラムの裏でpythonコマンドを実行する時コマンド名です。
Linuxを使っている人は、「動かなかったら変更する」程度で良いと思います。
「ビデオコーデック」
Windowsではさまざまな種類が選べます。
GeForceなら「nvenc」。
Radeonなら「amf」。
Intelなら「qsv」。が選べるでしょう。
「cpu」の場合はどのシステムでも動くはずです。
ちなみに対応していないコーデックを選んでも特にエラーは出ませんが、

「ビットレート」
動画をエンコードする時にしていするビットレートです。
出来上がった動画の画質を見て、好みで変更して下さい。
「シーンチェンジしきい値」
動画の中にはシーンが大きく変わるところがありますが、補間中はそれらを考慮しません。
よって、シーンが全然違うもの同士が補間された時、異常に歪んだ画像が出来上がります。
この部分を後から自動で指定して削除するのですが、その指定するフレームを検出するしきい値です。
ウィンドウの説明にもありますが、大きくすると検出率が上がります。
ただし、上げすぎると処理の関係上、動画がガタガタした動きになります。
通常はデフォルトのままで、歪みが気になるようなら少し値を上げて下さい。
「間引き係数」
重複したフレームを検出させる値に影響を与えます。
動画には暗いシーンもあれば明るいシーンもあります。
そんななかでひとつの動画をとおしで同じ値のしきい値を設定してしまうと、シーンによって検出率にバラツキがでてしまいます。
なので、今回のソフトから「シーンごとに」間引き係数を算出する方式に変更しました。
デフォルトで「1.05」が与えられていますが、この係数は自動で算出する値に「1.05」の値を掛けているという意味です。
好みの味付けがあると思いますので、出来栄えに応じて好きに変更して下さい。
「間引きしない場合はチェック」
フレームの間引きは作風に大きな影響を与えます。
作風を壊したくない人はチェックを入れて下さい。
とはいえ、このチェックを入れるくらいなら、リアルタイム補間ソフトで良いという意見もあります。
「tempフォルダを残す」
このチェックを入れると、処理に使った一時ファイルの入ったtempフォルダを残します。
どういった処理をしているのか興味がある人はチェックしてみても良いでしょう。
psnr値について
私も詳しくはわからないです。
ffmpegでシーンを検出する際に用いられている値とのこと。(ffmpegにはシーンチェンジを検出する機能がついていますが、どのフレームを削除したか知る方法がわかりませんでした。なのでその機能は使っていません。)
ふたつの画像を比較した時のピクセル情報の差分を数値化して表します。
基本的に数値が大きければ大きいほどふたつの画像は似通っているという意味になるそうです。
「50〜60」でほぼ一致というような判定ですが、作品によっても違いがあると思います。
ちなみに完全一致の時は「inf」という値を返しますが、このソフトでは代わりに「50」を返す設定にしています。
このソフトではpsnr値を元にさまざまな処理をさせていますが、
画像の判定をAIにさせることができるようになったら、この方法はお役御免となるでしょう。
そのうちアップデートで取り入れるかもしれません。
最後に
私はIT関係者ではまったくないので、いわゆる素人のサンデープログラマーです。
不具合なども多数あろうかと思いますが、何か気づいたらコメントよろしくおねがいします。
できればアップデートします。git.hubにもソースコードを上げる予定なので、自分でアップデートするのも良いと思います。
2025/5/25にGitHubに公開しました。
このソフトを作った目的は、自分自身で使うベンチマークソフトが欲しかったからですね。
なので、グラフィックスカードを変更した時のベンチマークで使うことが多いです(個人的な話ですがバイオレットエバーガーデンのエンディングの90秒の動画を使うことが多いです、著作権の関係でアップできませんが・・・)。
この記事を読みに来るような物好きはあまりいないと思いますが、みなさんのベンチマーク結果も報告してくれると嬉しいです。
その時に用いる動画も統一できればいいですね。
今回は以上です。
追記
「Ubuntu + ARC B580」の環境だと、補間したフレームに黒い画像が挿入される現象があることが確認できました。
対処方法は、rife-ncnn-vulkanをソースコードからビルドして、ダウンロードされたrife-ncnn-vulkanと差し替えることです。
もし、要望があれば記事にします。
コメント