解像度の低い昔の動画を綺麗にしてみた！

通勤苦から開放されて作業が捗る streampack 木村＠WFH です。

ちょろっと前に某所で話題になった動画の解像度を最大400%アップスケールできる、`Gigapixel AI for video` を試してみました。

もともとは静止画をアップスケールする Gigapixel AI という製品があり、それの動画版みたいな位置づけです。

# Gigapixel AI とは？

```
人工知能の力を活用した画像高解像度化ソフトウェアです。
不足した詳細を生成するのに、「深層学習（ディープラーニング）」を使用しています。
```

とのことです。

難しいことは分かりませんが、隣接するピクセルとの差異を `AI` の力で良しなに補完してアップスケールしてくれるのでしょう。

んでそれの動画対応版が for video ってやつで、昔 TV ドラマの中でよくあったシチュエーション、**画像が荒い監視カメラの映像を拡大していくと繊細な映像になる。**的な感じ。

オラ、ワクワクしてきたぞ。

んで今なら Windows 版のみですがベータ版を無料でテストすることができます。

#ダウンロード&インストール

https://videoai.topazlabs.com/beta

こちらから Windows 版インストーラーを入手できます。
あとは指示に従ってインスコ。
ユーザー登録も必要です。

#環境

動画をこねくり回すので、それなりのマシンスペックが要求されます。

推奨は以下

`The recommended system configuration is 32 GB RAM plus an nVidia graphics card with 6GB or more VRAM`

これ未満のマシンでも動くけど、遅くなるよとのことです。

私が今回使った環境はこんな感じ。ギリ最低推奨環境。

![cpuinfo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172426/5dee8490-5ace-d56f-6dc8-e8cff005ade1.png)

![gpuinfo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172426/f0683053-fe67-fb57-80d4-ba1c8bc70347.png)


# 素材

今は亡きうちで昔飼ってた猫の動画です。

いい感じにブロックノイズ乗ってますｗ

この子を AI の力で現代に蘇らせます！

![org.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172426/7ac29716-ee2e-f20c-26af-d3b0454ef7e1.png)


## 素材情報

```

Video
ID                                       : 224 (0xE0)
Format                                   : MPEG Video
Format version                           : Version 1
Format settings                          : CustomMatrix / BVOP
Format settings, BVOP                    : Yes
Format settings, Matrix                  : Custom
Format settings, GOP                     : M=3, N=18
Duration                                 : 18 s 767 ms
Bit rate mode                            : Constant
Bit rate                                 : 1 150 kb/s
Width                                    : 640 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 4:3
Frame rate                               : 30.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Compression mode                         : Lossy
Bits/(Pixel*Frame)                       : 0.125
Time code of first frame                 : 00:00:00:00
Time code source                         : Group of pictures header
GOP, Open/Closed                         : Open
GOP, Open/Closed of first frame          : Closed
Stream size                              : 2.60 MiB (84%)
Writing library                          : TMPGEnc 2.525.64.184
```

多分、ふるーいデジカメの動画モードで撮影したと思うんだけど、なんか `TMPGEnc` とか書いてあるな・・・ 

# 実行

何も考えずに動画右クリックからモードを選ぶだけ。
今回は最高の `Enlarge 400%` で。

なお、コマンドラインからでも実行可能です。

![gigapixel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172426/0c8ad860-a311-4916-b299-40aab98bb250.png)

Gigapixel AI for video が立ち上がり、しばらくすると処理が開始されます。

処理中は下記のような処理状況を確認できます。

![nya.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172426/3398acd5-ee8e-adf4-8d02-74a10565eac2.png)

# 負荷

前述のように負荷がかなりかかります。

## CPU

基本 GPU 任せなので CPU 負荷はそれほどでもなし。

![cpu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172426/c289a115-4182-6db2-d594-a7a420dd8393.png)

## GPU

Windows タスクマネージャーの GPU 情報は当てになりません。
上の図だと 14% になっていますが、実際にはフル回転してます。

んなので、[ELSA System Graph](http://www.elsa-jp.co.jp/products/products-top/graphicsboard/geforce/gpu_manager/elsa_system_graph/) で見てみます。

![gpu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172426/2b43217f-bd27-636c-6358-ed29bda8cd7a.png)


# 変換時間

この18秒の動画で自分の環境では約15分くらいかかります。

# 変換後のファイル (Enlarged 4x)

だいぶ綺麗になりました！

![400.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172426/a2a68793-9c4c-fb28-613c-4e9f8a6d0261.png)

## 動画情報

```
Video
ID                                       : 1
Format                                   : MPEG-4 Visual
Format profile                           : Simple@L1
Format settings, BVOP                    : No
Format settings, QPel                    : No
Format settings, GMC                     : No warppoints
Format settings, Matrix                  : Default (H.263)
Codec ID                                 : mp4v-20
Duration                                 : 18 s 767 ms
Bit rate mode                            : Variable
Bit rate                                 : 38.0 Mb/s
Maximum bit rate                         : 295 Mb/s
Width                                    : 2 560 pixels
Height                                   : 1 920 pixels
Display aspect ratio                     : 4:3
Frame rate mode                          : Constant
Frame rate                               : 30.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Compression mode                         : Lossy
Bits/(Pixel*Frame)                       : 0.258
Stream size                              : 84.9 MiB (100%)
Writing library                          : Lavc58.54.100

```


# 比較

![hikaku.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172426/6bb4bb5d-223e-b57e-6612-9df9eb0133ba.png)

ヒゲもはっきりと。男前になってます。

## 比較動画

YouTube にアップしています。
下の画像をクリックすると YouTube に飛ばされます。

[![](http://img.youtube.com/vi/PC73oD9omSs/0.jpg)](http://www.youtube.com/watch?v=PC73oD9omSs "")

# まとめ

他にもいくつか古い動画を試しましたが、やはり元動画がキレイなほうが変換後もよりキレイに仕上がります。
ここでは上げれませんが、商品クオリティの DVD 素材なんかは元からノイズは少ないのでアップスケールにはうってつけです。

高スペックが必要且つ変換時間が長いので敷居は低くありませんが、思い出の映像が鮮明に蘇るのは嬉しい限りです。