as the Wind Blows ...

パソコン、プログラミング、車、写真、etc...

動画エンコード環境改善 (3) - 画質比較

GeForce 1660 Tiでハードウェアエンコードしてみたので、速度と画質の評価をしてみたいと思います。詳細な比較は他サイトでいろいろ行われているため、ここではあくまで自分用メモとして残していますが、基本的には結論は他で評価されている内容と方向性は同じでした。

 

評価の指標はSSIM(ALL)の値と動画から静止画切り出し後に目で見て比較を実施しています。使う動画のソースによりSSIMの値は大きく変わるため、2パターンで検証してみました。

 

パターン1:ソース = 2019/12/31放送 CDTV年越しライブ オープニング3分間切り出し

 

こちらはオープニングで乃木坂46が歌っているシーンの切り出しとなります。ほぼ3分間にわたり、シーン切り替え、チルド、パン等、画面全体に動きがあるソースです。今までは、このような歌番組等を保存しておきたい場合、私はエンコードはせずそのままTSを必要な範囲切り出して保管していました。エンコードの素材としては、私的には適当ではない素材ですが、意地悪なソースの例として試しています。結果が下記となります。

Enc Engine bit rate Enc Time (sec) fps SSIM(ALL)
x264 SW 7 Mbps 1245 5.34 0.955274
x264 SW 3.5 Mbps 1095 6.26 0.935873
QSV h264 7 Mbps 86 65 0.950438
QSV h264 3.5 Mbps 90 61 0.928495
NVEnc h265 7 Mbps 23 253 0.959321
NVEnc h265 3.5 Mbps 21 251 0.940422

 

x264 SWエンコードはvery slow設定で行っていますが、同じビットレートでSSIMを比較するとh264とh265ではハードウェアエンコードのほうがSSIM値で見ると、画質はよいという評価になりました。一方で、特に動きが激しい部分の静止画を切り出すと明らかに破綻している箇所が見受けられます。動画を普通に再生していても、なんかブロックノイズで乱れているなとぱっと見くらべてわかる箇所が多いです。HWエンコードの場合、静止画で比較してしまうとディテールがつぶれる傾向にあるのはよくわかりますが、その点はぶっちゃけ静止画比較しないとわからないです。

圧倒的なのはエンコード速度ですよね。うちのCPUがもともとしょぼいというのはもちろんありますが、画質をある程度犠牲にしたとしても、このエンコード速度は評価すべきなので何とか使いこなしたいです。

 

続いてパターン2、私がよくエンコードしている素材での検証です。

 

パターン2:ソース=おしゃれイズム

PVのように頻繁に画面に動きがある素材ではなく、トーク中心の番組を想定したソースです。その結果が下記になります。

 

Enc Engine bit rate SSIM(ALL) memo
x264 SW 7 Mbps 0.989521 VBR 2pass
NVEnc x265 7 Mbps 0.992152 --vbrhq 0 --vbr-quality 20
NVEnc x265 5 Mbps 0.991126 --vbrhq 0 --vbr-quality 22

 

私の場合、少し高画質でエンコードしたいケースでは7Mbps、ドラマなど、特にこだわりない場合は3.5Mbpsでこれまでエンコードしていました。--vbr-quality 22はパターン2のソースでこのサイズになる値を探して決めています。--vbrhq 0 --vbr-quality 20はパターン3のハケンの品格第一話を3.5Mbpsになるように見つけた設定でパターン2をエンコードした結果です。どちらも多少、やはりディテールはつぶれる傾向にありますが、SSIMは0.99を超えています。動きが激しい部分を切り出して見つけてこないと、7Mbpsと5Mbpsの違いは私の眼にはよくわかりませんでした。トーク系の番組であれば、私のケースでは-vbr-quality 20で十分かもしれません。ソースにも依存すると思うので、もう少しいろいろな素材で検証が必要な気がします。

 

最後にパターン3、頻繁にエンコードしている実写ドラマ系です。

パターン3:ソース=ハケンの品格 第一話

 

Enc Engine bit rate SSIM(ALL) memo
x264 SW 3.5 Mbps 0.990103 VBR 2pass
NVEnc x265 3.5 Mbps 0.993178 --vbrhq 0 --vbr-quality 22
NVEnc x265 2.6 Mbps 0.992752 --vbrhq 0 --vbr-quality 24

 

たまにスマホから見返してみるような使い方しかしていないから、--vbr-quality 24で十分な気がする。