【検証】グラフィックボードエンコードの実力を試してみた

最終更新日:

BableTechも一応Youtubeチャンネルを開設していますが、動画作りで最後に必ず必要になってくるのが「エンコード」です。これは組み立てた動画のパーツを一つの動画として完成させるための手順です。

そんなエンコードには高い処理能力が必要になってきます。そこでCPUだけでなく「GPU」も使ってエンコードするハードウェアエンコードという方法があります。

今回は昔のGPUでも爆速エンコードができるのか検証してみました。

 

 

この記事を2文で説明すると

  • GPUの方がCPUよりも動画エンコードに向いている
  • GPUエンコードの方が2倍以上速いこともある

なぜGPUでエンコード?

早速CPUのみのエンコードと、GPUも利用したときのエンコードを比較していきたいところですが、そもそもなぜGPUを使うのでしょうか?

これには様々な理由があります。

 

並列処理能力

以前にGPUとは何なのか徹底的に解説する記事を投稿しました。

【サルでもわかる】グラフィックボードとは?

そしてここで、GPU(グラフィックボードに搭載されている演算装置) の特徴として「並列処理が得意」というものがあると説明しました。

具体的には、一つひとつのコアの処理能力は低いもののコア数が圧倒的に多いので同時に大量の処理を行えるようになっているのです。 動画エンコードにおいては頭の良いコアよりも大量にあるコアの方が活躍します

そのためとにかく量をこなすことができるGPUの方がエンコードに向いていたりするのです。

実際にNvidiaのGPU等にはエンコードに特化している部分があります。

 

CPUのリソースを守る

GPUによるエンコードを行ってもCPUはある程度使われますが、CPUだけのエンコードだとCPUをまんべんなく使うため使用率が100%になることも少なくは無いです。 そうなるとエンコード中に他の処理を行うことは厳しくなってきます

その点、GPUはゲーム等をしない限りあまり使われるものでもないのでリソースが余っているでしょう。このようにしてGPUエンコードはお暇になっているGPUを有効活用することができるのです。

 

 

検証環境

そこまで大した検証でもありませんが、一応私の環境としては以下の通りです。

 

 HP Z400 ワークステーション
CPUIntel Xeon W3565 (4C8T)
メインメモリDDR3-1333 MHz 8GB
GPUNvidia GeForce GTX 660 OEM (1.5 GB)
OSWindows 10 Pro

 

中古で購入した10年前くらいのHPのワークステーションにメルカリで購入したOEM版のGTX 660を取り付けたものですね。 今としては決して処理能力は高くない方ですが、実はこのCPUは2012年モデルのMac Proに搭載されてたんだとか。

 

また、今回エンコードする動画としては以下の通りです。

 

長さ6分36秒
解像度960 x 544
FPS30 fps
オーディオ128 kbps 2ch
拡張子.mp4

 

そして今回はこの動画に何も手を加えず、mp4に再エンコードするという処理です。エンコードはx264で、二つのソフトを使って試してみます。

 

 

AviUtl

まずは大人気の無料動画編集ソフト「AviUtl」によるエンコードですね。AviUtlは拡張機能は基本プラグインで入れる方式なので、x264エンコーダーも後から追加したものになります。

 

CPUエンコード

まずはCPUエンコードです。設定としては以下の通りです。

 

クリックして拡大

左上に「x264」と書かれていますね。それではこのまま実行してみます。ちなみにエンコード元動画もエンコード後についてもSATA接続のSSDに格納されていますのでストレージがボトルネックになるということはまずないですね。

 

使用率

 

各使用率

使用率を見れば明らかですが、CPUがフルで使われているのに対してGPUは全くと言っていいほど使われていません

 

結果

そして結果は以下の通りです。

 

総エンコード時間2分46秒
(クリックして拡大)

2分46秒もかかりましたね。やっぱり昔のCPUではきついようです。

 

GPUエンコード

続いてはGPUエンコードですが、ここではx265エンコーダーのハードウェアエンコード版のプラグインを使いました。エンコード方式は全く同じなので条件は同じです。

 

クリックして拡大

左上に「NVEnc」と表示されています。しっかりとNvidia製GPU専用のエンコード設定になっていますね。

 

使用率

 

各使用率

今度はCPU使用率はそこまでいかず、逆にGPU使用率がとても高くなりました。GPUメモリはあまり使われていない印象ですが、Video Encodeというブロックが多く使われているようです。

 

結果

そして結果は以下の通りです。

 

総エンコード時間1分16秒
(クリックして拡大)

総エンコード時間は1分16秒となり、驚くことに半分以上時間を減らすことに成功しました。

結果のグラフについては後程まとめて紹介します。

 

 

XMedia Recode

続いてはXMedia Recodeという動画変換ソフトです。無料で様々な拡張子をサポートしているので結構昔から愛用しています。

このソフトについても先ほどのAviUtlと全く同じ動画を同じように再エンコードしました。

 

CPUエンコード

CPUエンコードの設定画面は以下の通りです。

 

設定

あまりに複雑だったので一部分だけ載せました。 そして早速エンコードしてみました。

 

使用率

 

使用率

今度は気持ち良いくらいCPUをたくさん使ってくれました。エンコード開始早々CPU使用率は100%に達し、クロック数も上昇しました。

でもGPUは全く使われていません。

 

結果

そして結果は以下の通りです。

 

総エンコード時間2分7秒

先ほどAviUtlでのエンコードに比べると多少速度が上がっていますね。でもまだCPUしか使われていません。

 

GPUエンコード

続いてはGPUエンコードです。

 

設定

しっかりとNvidia NVEncが使われています。こちらもエンコード方式はx264です。

 

使用率

 

使用率

今度は逆にCPU使用率は20%にまで下がり、GPU使用率が堂々と100%になりました。かなり有効活用できているようですね。

 

結果

結果は以下の通りです。

 

総エンコード時間29秒

これは驚きですね。なんとエンコード時間が29秒まで縮みました

環境や条件はあまり変わっていないので、これはXMedia Recodeの方がGPUを有効活用できているということでしょう。

 

 

結果

結果をまとめてみると以下のようになりました。

 

 

このグラフが短いほど良いわけですが、やはりXMedia Recodeの方が優秀ですね。また、GPUによるエンコードはやはり優秀といったところでしょう。

 

以上、グラフィックボードでのエンコード検証でした。







アンケート

期限:2021/05/31

こちらの記事に興味があるかもしれません


コメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


検索

Googleアドセンス

JUNKI

純輝
やばいPHPバージョン一生7.2かもしれん

Twitter Youtube Instagram