スキップしてメイン コンテンツに移動

アニメを4k60fpsにしてみる

時間はかかるが実感しにくい。完全に自己満足。


現代において映像の一つの目指す点は4kと60fps化だ。エンコードするときに設定を4kにして60fpsに設定すると、数値上を4k60fpsにすることは可能だが、それは数値上のものだけであり、実際に見ても差異はないので意味がない。


それに現行放送は1440x1080で放送されているが、どうもアニメは720pで制作されているそうだ。

例えアニメの4k放送やUHD BDが発売されたとしても、それはおそらく疑似4kだろう。


また、TVの機能でアップコンバートしてフレーム補間も可能だが、これではそのTVで再生するときにアップコンバートするだけで、ファイル自体が変わるわけではない。なので映像のファイルそれ自体を4k60fps化したいのだ。


さて、一応だが、フリーソフトでこれらの夢を叶えることは可能だ。ただ時間とHDDにそれなりの余裕が必要ではあるが。


手順としては

動画をffmpegを用いて画像と音声にバラす
waifu2xを利用して先程ばらした画像をニューラルネットワークを用いて4kにアップコンバートする
4k画像を再び動画化し、音声と合体させる
AMDのVega以前のGPUであれば利用可能なFluid Motionを用いて60fps化する

以上で完成だ



ハードウェアで用意するものはAMDのVega以前のGPUのみである。Vega世代であれば最も望ましい。あとはフリーソフトだけでなんとかなる。
あとコマンドラインでアプリが使えないとかなりきつい。



まず、4k化についてだ。AI Scalerというソフトを使えば高品質なアップコンバートが可能なそうだが、20万円もするので却下だ。Video Enhance AIというソフトは199ドルで購入のハードルは低いが、今回はフリーソフトのwaifu2xを使用する。

このソフトはニューラルネットワークを用いて動画をアップコンバートするものではなく、画像ファイルをアップコンバートするものなので、一度動画を全てばらして画像ファイルにする。ffmpegを使用すれば簡単だ。

ffmpeg -i "input" -c:v tiff "output\image_%04d.tiff"

をコマンドラインから入力すればいい。inputには使用する動画ファイルを、outputには出力するフォルダーをそれぞれ指定する。また画像のフォーマットはpngでも問題はない。知識があるのであればハードウェアデコーダーを利用することでより高速に画像への変換が可能なはずだ。

アニメは基本的に24分。つまり1440秒で1秒あたりに29.97枚の画像が生成されるため、43156枚の画像が合計で生成される。なお今回は2分半程度の動画を利用するのでそこまで多くのファイルは生成されない。



このように、すごい量の画像が生成されるのは間違いない。そしてかすみんかわいい

次に音声と動画を分離する。

ffmpeg -i "input" -c:v  flac "output\audio.flac"

今回はなんとなくflacにしたが、フォーマットはmp3でもaacでも何でも良い。またファイル名もなんでも良い。とにかく分離できればそれでOKだ。



変換が終了するとwaifu2xを利用して4k化する。


AMDのGPUを利用しているのであれば上記から、NVIDIAのGPUを利用しているのであればwaifu2x-coffeeというのを推奨する。ちなみにCUDAが使えるNVIDIAの方が速度は圧倒的に早い。


DLして解凍したら

waifu2x-ncnn-vulkan.exe -i "input" -o "output" -n 2 -s 2

のコマンドを実行。今回はinputとoutputはそれぞれ指定する。ファイルではなくフォルダを指定する。


GPU性能にもよるが、かなり時間がかかる。とにかく待つ。

ここで画像を比較してみるとしよう。

元の画像(FHD)

4kアップコンバート後の画像

う~ん。なかなかこれだけを見て違いを見出すのは難しいというのが正直なところではある。というかBloggerの仕様上、解像度が一定以上のは自動で圧縮されてしまい、2048 x 1152にされてしまうようだ。

さて、完成したら次はアップコンバートされた画像と音声を合成して動画ファイルに戻す。

ffmpeg -i "input\image_%04d.png" -i "input\audio.flac" -c:v libx264 -crf 10 -r 23.976 -preset ultrafast -c:a copy "output"

今回はx264を使用した。今回は60fps化のためにまた後でエンコードするのでビットレートもりもりの超激重ファイルになるが、画質を極力劣化させない設定にした。
フレームレート(-r)は元動画の数値に合わせる。今回は23.976だったのでその数値にした。

ここで音ズレが発生した場合はコマ落ちかフレームレートを間違えている可能性がある。頑張って原因を究明するしかない。

ここからが60fps化だ。bluesky氏によって公開されているA's Video Converterを使えばAMDのFluid Motionというフレーム補間技術を使って映像を60fps化できる。

設定は以下の通りに行う。


これを使うにはVCEというエンコーダーを利用する必要があるが、いかんせんこれは画質が最悪レベルに悪い。なので固定QPにして品質を0にする。こうするとビットレートはとてつもなく高くなるが、無劣化で動画が出てくる。60fps化したあとで好きなように圧縮すればいい。



ビデオフィルタでは上記のように設定し、Fluid Motionを有効にする。


これで4K化と60fps化は完了だ。


動画の容量がとてつもないことになっていると思うので、最後にx265を使ってエンコードすれば作業は完了となる。

私はいつもffmpegで

 -c:v libx265 -crf 20 -pix_fmt yuv420p10le -profile:v main10 -preset fast -c:a copy

という設定にしている。

以上。

コメント

このブログの人気の投稿

xbox game pass for PCからSteamにデータ移行する方法の備忘録

 xboxgamepass(以下ゲーパス)は定額でゲームをプレイし放題の革新的なサービスである一方、ある落とし穴が存在する。 こういうサービスなので、ゲームが配信終了されることもたまにあり、それ自体は仕方のないこととして納得するものの、ゲーパスのゲームのセーブデータはクラウドに保存され、ユーザーはそれにアクセスすることが不可となっている。 つまり、面白かったからSteamで購入し、セーブデータを移行して続きからプレイする事は出来ない。というクソ仕様だ。Microsoftからすれば、xboxで購入してプレイしろよという話なのだろうが、あんな使いにくいゴミアプリはゲーパス以外の価値はない。 ここから本題。先程、セーブデータはクラウドに保存され、ユーザーはそれにアクセスすることが出来ないと述べたが、実際には名前を変えてローカルにも保存されている。以下はセーブデータの移行方法。 注意点として、全てのゲーム、環境でこの方法が使えるわけではないので、悪しからず。 また、予めSteamでゲームを購入し、そのゲームのセーブデータを作っておく必要もある。 この方法でセーブデータが消去されてしまったとしても、私は一切の責任は取らない。 今回移行するゲームはProject Wingman まず、C:\Users\User\AppData\Local\Packages\にアクセスする。 長い名前のフォルダがあるが、セーブデータが保存されていると思われるフォルダはゲームのデベロッパーかパブリッシャーの名前を含んでいるので、検索して探す。Project Wingman の場合はHumbleと検索すると見つかる。探しているゲームに合わせて検索ワードを変えて探し、フォルダの中に入る。 次にSystemAppDataのフォルダに入り、その中のwgsというフォルダに入る。wgsには"t"というフォルダと、めちゃくちゃ長い名前のフォルダの2つがあるので、めちゃくちゃ長い方に入る。 中には変わった名前のフォルダがいくつかあると思う。 ゲームによって多少変わるものの、ゲームのセーブデータはいくつかのファイルから構成されている。このフォルダはそのファイルを1つ1つフォルダ分けし、名前を変えられてこの中に入っている。 なので、この中にあるファイルの名前を1つ1つ変更し、Steamのフォルダに...

チャンネルごとの画質について

 4K放送は綺麗だが、今回は現行放送の画質についての話。 結論から言うと、テレビの画質は BS放送(一部)>BS放送≧地デジ(民法・NHK)>地デジ(独立局)>CS となる。 以下、ビットレートという言葉が出てくるが、これはデータ量のことで数字が大きければ高画質になると思ってもらって問題ない。 BS放送は地デジやCSより高画質だがは4K放送の影響で大手民放とNHK BS1の画質が悪化した。BSプレミアムやBS11イレブンの画質は従来どおり高画質なままなので、BS放送(一部)と表記した。よってBS放送(一部)>BS放送となる 画質の悪化はビットレートの低下もそうだが、解像度も1920x1080から地デジと同じ1440x1080に下がった。 しかしそれでもビットレートは地デジより高いので、画質は地デジよりBSのほうが良いことに変わりはないようだ。 地デジは地デジでもNHK・大手民放と独立局とで画質に差が出る。ちなみに大手民放とはフジテレビ、テレ東、テレ朝、日テレ、TBSの系列局のことを指し、独立局とはそれ以外の小さなローカル局のことを指す。TOKYO MXやサンテレビなどがそうだ。私は大阪在住なのでMXについてはよく知らないが。 さて、画質の話だが、地デジ放送は先程も少し言ったが、1440x1080で放送されている。しかし、サンテレビやKBS京都など独立局は1920x1080で放送されている。 では独立局のほうが実は高画質なのか?と思うかもしれないが、実はそうではない。独立局は民放・NHKよりビットレートが低いので、目に見える画質は悪い。 というか、ビットレートが低いのに解像度が高いので、動きの多いシーンでの画質はひどいものになっている。 これはサンテレビのプリコネのスクショだが、見ての通りブロックノイズが出まくっていて、ひと目で画質が悪いのが見て取れる。 比較できるものがなくて申し訳ないが、大手民放の地デジやBS放送ならここまで酷くはならない。 最後にCS放送だ。1440x1080で放送されており、基本的に画質は悪い。ビットレートは10Mbps以下で、つい最近までSD画質で放送していた局もあるくらいだ。有料放送なのに画質は最悪と、良いところがない。 CS放送ってあんなにチャンネルがあって有料で料金も高いのに、どうやって成り立ってるのか不思議でしょうがない。チャ...

凱旋門賞に向けてパリロンシャン競馬場の軽いレポート

いざ凱旋門賞 日本競馬がこれまで何度も立ち向かい、ディープインパクトやオルフェーヴルでも勝利することが出来ない世界の壁であり最大の鬼門。 今年は日本からはタイトルホルダー、ドウデュース、ディープボンド、ステーフーリッシュの4頭が出走予定。 そんな凱旋門賞はフランス、パリにあるパリロンシャン競馬場にて行われる。 パリ大賞(GI)が行われる7月14日にパリロンシャン競馬場を訪れたので、今回はその簡単なレポートをつらつらと書いていく。 1857年という今から165年も前に開場したこの競馬場は世界で最も美しい競馬場とも言われており、先述した世界最高峰のレースである凱旋門賞が行われる競馬場として有名。 パリ郊外のブローニュの森という森の中に造られており、アクセスする手段はバスに限られる。メトロの駅から歩けない距離でないが、40分以上は余裕でかかるのでおすすめはしない。 日本の競馬場は街なかに人工芝を用いて作られるが、欧州の競馬場の多くはもともと自然が会った場所に競馬場を建設する為、大きな競馬場でもアクセスが悪いことは珍しくない。また水はけが悪く、馬場状態が悪化しやすく回復しないのも特徴の一つだ。 これが日本の走りやすい芝に特化した競走馬が欧州ではなかなか勝てない所以と一般的に言われている。 入場券はかなり高額で€20(2800円程度)もする。早期にネット予約すればもう少し安くなるが、日本と比べると非常に高額。 入場ゲートをくぐると、金色に光るスタンドとそれに続く階段が目に入り、その奥には馬の銅像が置かれている。 この馬はグラディアトゥールという馬で1862年にフランスで生産され、英2000ギニーステークス、ダービーステークスを勝利。仏に戻りパリ大賞典(パリ大賞)にも勝利。その後再び渡英しセントレジャーステークスを勝利して史上二頭目の英クラシック三冠馬となる。 生涯戦績19戦16勝という圧倒的な強さを誇った馬。 当時のフランス競馬はイギリスかぶれの貴族たちによって行われていたものの、イギリス本国と比較すると劣っていた。そんな中でフランスの馬がイギリスのクラシックを総なめしたというのだから、その人気は絶大なものだっただろう。銅像が作られるのも納得である。 さらに進み、右に曲がるとパドックが見える。パドックの作りは日本と大きく違い、かなり長い長方形となっている上、木々が生えている。...