gp500physics’ blog

元・GP500 Physics 開発ブログです。

H.264 vs H.265 画質を RTX 2060 と TMPGEnc で比べてみた。

以前から気になっていたこと。H.264 と H.265 って本当はどっちが画質がいいの? 新しい H.265 の方が画質がいいに決まっていると思うのですが、ネットを見ていると、H.265 はたいしたことない、みたいな情報も多い。比べてみる価値あり!ということで、比べてみました。

ソース映像には、発売間もない MotoGP20 のプレイ映像を準備しました。GeForce Experience の機能を使い、 H.264 WQHD 60fps 50Mbps の動画を作成しました。この映像を WQHD 29.97fps 3Mbps の設定で、TMPGEnc Mastering Works 7それぞれのフォーマットの標準設定エンコードしてみました。

エンコードでできあがった動画の特定のフレームを BMP で切り出し、Photoshop ElementsPNG-24 に保存し直したものを掲載します。PNG-24 なので画質の劣化はないはず。それでは、早速比べていきたいとおもいます。

 

ソース

f:id:gp500physics:20200426111600p:plain

H.264 (NVEnc)

f:id:gp500physics:20200426111647p:plain

H.265 (NVEnc)

f:id:gp500physics:20200426111724p:plain

H.264 (x264)

f:id:gp500physics:20200426111756p:plain

H.265 (x265)

f:id:gp500physics:20200426111824p:plain

 

違いが分かりますか? パッと見た感じでは、タイヤのディテールがわかりやすく失われている H.264 (NVEnc) の荒さが目立つような気がしますが、よく見てみると設計の違いというか、考え方の違いが見えてきます

 

1.左上・右上のフェンスの向こう側の景色

まず、H.264 から見ていきます。画面のすべての部分を同じように圧縮しようとしている感じで、左上・右上のフェンスの向こう側の景色までディテールを残そうとしていることが見てとれます。この傾向は、H.264 (NVEnc) も H.264 (x264) も同じです。H.264 (x264) では、2枚目のフェンスの支柱まで残っています。

これに対して、H.265は、H.265 (NVEnc) も H.265 (x265) もフェンスの向こう側の景色が潰れてしまっています。右上の2枚目のフェンスは、なかったことになってしまっています。あまり見られないであろう部分は塗りつぶしてしまっているようです。

 

2.アスファルト

今度は、アスファルトの部分に注目します。ものすごく速く、直線的に流れている部分ですが、H.264 (x264) が一番ディテールを残しているように見えます。H.265 (x265) も頑張っていますが、ブロックノイズが出そうになってぼやけています。

H.265 (NVEnc) は、シャープさを残したまま、うまくぼかしている印象ですが、真ん中にブロックノイズがはっきり出ています。H.264 (NVEnc) はディテールを残そうとしていますが、全体的に破綻してしまっています。

 

3.タイヤ

次に、タイヤのミシュランのロゴの部分に注目します。ソースに一番近いのは H.264 (x264)。次は微妙な差ですが、H.265 (NVEnc) のように見えます。その次が H.265 (x265)。一番あらが目立つのが H.264 (NVEnc) です。

ここまでの比較では H.265 の立場がないような感じですが、タイヤの表面を比べると、H.265 (x265) 、H.265 (NVEnc) の順にディテールが残っているように見えます。H.264 (x264) パッと見た感じはディテールがしっかり残っているように見えるのですが、よく見ると潰れています。

 

総合的に見て、WQHD 29.97fps 3Mbps の設定で一番優秀なのは H.264 (x264) でした。続いて、H.265 (x265) 、H.265 (NVEnc) の順によかったと思います。一番ダメなのは H.264 (NVEnc) でした。

エンコード時間に数倍の時間がかかる H.265 (x265) を H.264 (x264) が押さえてしまいました。x264 がかなり優秀であることがうかがえます。おまけに、最近の CPU は x264 のエンコードを実時間以下でかなり速く終えることができるので、保存目的なら当面は x264 でのエンコードが良さそうです。

ただ、ゲームのプレイ動画となると話は別で、どのフォーマットでもビットレートを十分に与えればディテールはしっかり残るので、CPU に負荷をかけずにリアルタイムでエンコードできる NVEnc を使う価値は十分あると思います。

保存用、ゲーム録画用、配信用…など、用途によって一番良さそうなエンコーダを使い分けるのが良さそうです。