画質比較 - x264、CUDA、ほか

GTX460も買ってしまったことだし、画質の比較をしてみる。

もうTMPEGEnc VMW 5 体験版の期限も迫っているし…ね。

えと、あらかじめ言っておくと、画像を貼りつけまくったので、もしかすると重いです。

まず、環境とか基本的なところの説明から。

【環境】
OS : Win7 x64
CPU : Xeon W3680 (6C/12T, L3=12MB) @ 4014MHz
メモリ: 12GB
GPU : GTX460
念のため書いておくと、この環境だとマルチスレッド効率が低いものは遅くなってしまう。

【入力データ】
例によって Little Busters Ex のOPデモ版。
解像度 : 800x600p
fps : 30.000fps
フレーム数 : 6891 frame (約 3分49秒)
音声 : 出力しない

フィルタは全くかけず、そのままエンコードする。

そいで、平均レート1000kbpsになるようにエンコードして、その画質と速度をチェックしてみる。基本的に1passVBRを使って品質を変えながら1000kbpsになるようにエンコードするという、実にめんどくさいことをやってみた。2passを使えばいいようなもんだが、2passだと1passと違った様子が出てくるかもしれないので、今回はあくまでも1passにこだわった。

この動画(リトバスExOP)を1000kbpsってのは結構厳しいので、どうなることやら…

画質の比較には4635frame目の左上400x300の部分を使う。


試したソフトウェアは…

Aviutl0.99i8 + x264guiEx 0.13 + x264.exe r1834
TMPEGEnc Video Mastering Works 5 体験版 (v5.0.1.19)
TMPEGEnc 4 XPress (v4.7.8.309)

あとはCUDAが使えるらしいので…
MediaCoder 0.7.5

ほかにも次の3つはCUDAが使えるというのだが、あきらめた。理由は…
PowerDirector9はなぜか自由に解像度を指定できないので800x600出力ができないorz なんか640x480,720x480,1280x720などいわゆる「一般的な解像度」からしか選べない…論外。

MediaEspresso6はなんと動画ファイルを「インポートできません」ってんなアホな。ただのMPEG1動画なのに…私の使い方が悪いのだろうか…

badaboomはどうやらGTX4xx(5xx)のfermi系列には対応してないらしい。なん…だと…


そういやTMPEGEnc VMW5体験版がアップデートでx264 の --min-keyintに対応した。最小GOP長。私はこれを小さめの4とかにしないと気が済まないので、うれしい限り。(keyintの1/10とかねーよ)





その1

まずはAviutl + x264guiEx + x264.exe と TMPEGEnc VMW5 x264エンコーダ で比較してみる。だいたい似たような感じになるはず。ただまあ、体験版っていう透かしが入るので、厳密に同じではないが…

・Aviutl + x264guiEx + x264 HQ
・Aviutl + x264guiEx + x264 LQ
・TMPEGEnc VMW 5 + x264 HQ
・TMPEGEnc VMW 5 + x264 LQ

HQとLQというのはx264オプションの設定の違いで、HQは高画質・低速、LQは低画質・高速寄りの設定。

とりあえず、ビットレート。
Test_20110103_x264_bitrate
約1000kbpsである。



つぎに、速度。
Test_20110103_x264_speed
HQとLQでは大きな差があり、またTMPEGEncとAviutlではわずかにAviutlのほうが速い。これは透かしを焼きこむ分などが影響しているかもしれないし、違う原因かもしれない。

で肝心の画質比較。
まず元画像。
TVMW5Test20110103_original

次にAviutl HQ。
TVMW5Test20110103_aviutl

TVMW5 x264 HQ。
TVMW5Test20110103_x264 HQ

Aviutl LQ。
TVMW5Test20110103_x264 AviutlLQ

TVMW x264 LQ。
TVMW5Test20110103_x264 LQ

わかりにくい場合は、画像を新しいタブで開き、タブを切り替えながら見ていくとよいと思う。
まず、originalと比較すると、当然エンコード後は一部ぼけてしまっていることがわかる。

HQ同士、LQ同士をそれぞれ比べると、ほぼ似たような画質だが、若干Aviutl+x264のほうが高画質な気がする。

HQとLQで比べると、これもまた若干だがHQのほうがきれいに見える。左下の葉のボケ具合や、右上のクドの腕の下あたりがわかりやすいだろうか。

まあでも、オプションをそろえてやれば、ほぼおなじ結果になるということがわかる。当然といえば当然だが、一応これは示しておきたかった。

あとx264は設定次第で、かなり高速にもできるし、逆に時間をかけて高画質にできる、ということもわかる。




その2
がんがんいこうぜ。

比較するのは
・TMPEGEnc VMW5 x264 HQ
・TMPEGEnc VMW5 x264 MQ
・TMPEGEnc VMW5 x264 LQ
・TMPEGEnc 4 XP MainConcept H.264
・TMPEGEnc VMW5 wmv
・TMPEGEnc VMW5 Divx
・TMPEGEnc VMW5 CUDA H.264
・MediaCoder CUDA H.264

例によってHQ,MQ,LQの違いはx264のオプションの差。最後に細かいオプションを書いておいた。

TMPEGEnc VMW5 CUDA H.264はVBRだとエラーで止まってしまうので、残念ながらCBR。


まずは、ビットレート。だいたい1000kbpsにそろえたよ、ということ。
TVMW5Test20110103_bitrate

次にエンコード速度。
TVMW5Test20110103_speed

速度についてはCUDA無双。そんなに高速で大丈夫か?
だが設定次第ではx264も速い。wmvやdivxはマルチスレッド効率が悪く6C/12Tを使いきれていない。CPU使用率がずっと低いままだった。そのためCPU使用率が高めだったx264と比べ、相対的に遅くなってしまった感がある。というよりx264のマルチスレッド効率の高さが優秀すぎるのかもしれない。

さて、画質チェック。
オリジナル
TVMW5Test20110103_original

TVMW5 x264 HQ
かなり良い画質。
TVMW5Test20110103_x264 HQ

TVMW5 x264 MQ
HQより全体的に少しボケぎみである。
TVMW5Test20110103_x264 MQ

TVMW5 x264 LQ
MQと比べると、左下のほうがさらにぼけている。
TVMW5Test20110103_x264 LQ

TMPEGEnc4 MainConcept H.264
悪くはないんだが、よくもない。割とボケぎみ。
TVMW5Test20110103_main concept

TVMW5 wmv
かなりぼけている。
TVMW5Test20110103_wmv

TVMW5 Divx
wmvとは少し違った画質劣化で、ボケるというよりは細かいブロックやノイズが見える。
TVMW5Test20110103_divx

TVMW5 CUDA H.264。
ボケボケなうえ、でかいブロック状のものが見える。(左のほう)
TVMW5Test20110103_CUDA

MediaCoder CUDA H.264。
左のほう特大の変なブロックが見える…どっからきた…
TVMW5Test20110103_MediaCoderCuda


わかりにくい場合は、やはり画像をタブで開き、タブを切り替えながら見ていくといいと思う。

で、わかってはいた(っていうか予想はしていた)ことだが、CUDAエンコの画質残念杉。これは静止画での比較だけど、動画で見てみるともっと動きの大きいところでは、猛烈に破たんする。

TMPEGEnc VMW5のCUDAは、そもそもCBRとVBRしかない(しかもVBRは止まってしまうのでCBRしか使えなかった)のが問題で、品質基準がない点は問題。MediaCoderのCUDA H.264は量子化量(QP)を指定できるけど、画質的にはTMPEGEnc VMW5のCUDAより悪くなっている。その他のソフトのCUDAエンコーダは使えなかったし…

ハードウェアエンコというと、あとはSpursEngineとかあるけど、あれもPowerDirector9同様、自由に出力解像度を設定できなかったような気がする(持ってないのでわかんないけど)。画質もそんなによくはない…らしいし。

話が少しずれるけど、ほかのエンコードソフト使ってみて思ったのはTMPEGEncはやっぱり使いやすいし、いろいろ便利だということ。MediaEspressoとか読み込んですらくれないし…

あとハードウェアエンコというと、TMPEGEnc VMW5の対応しているSandyBridgeのハードウェアエンコかな…ここ(リンク>>)にIntel Media SDKを使ったレビューが載っていて、x264の2倍速いよ的なことが書いてあるけど、x264の設定はどんな風なのかとか、エンコード後の画質はどうなのかとか全く触れてないから、ほとんど参考にならない。x264の速度なんて設定次第でどうとでもなるんだし。ぶっちゃけ--me tesaとか--ref 16とか使えばいくらでも遅くできる。もちろん、これはCPUのレビュー記事で、SandyBridgeでこんなこともできるっていう紹介ができているのだからこの記事としては十分だろうけど。

というわけで、やっぱx264は優秀なんじゃないだろうか。速度と画質のバランスはオプションで結構自由に設定できるし。うん。え…オプションが多すぎてわからん?「パフォーマンス」の「やや遅い」とか「やや速い」とか使いましょう。だいたいはそれで大丈夫で問題ない。

GPUはフィルタリングかな、やっぱり。私はAviutlでノイズ除去フィルタnl-meansのGPU版でGPUを使おうと思う。

ここまで読んでくれた人、長文読んでくれてありがとうです。




おまけその1。

BitrateViewerでビットレートの分布が見える。いずれもクリックで拡大。

TVMW5 x264 HQ
TVMW5Test20110103_bitrate_x264 HQ

TVMW5 x264 MQ
TVMW5Test20110103_bitrate_x264 MQ

TMPEGEnc 4 MainConcept H.264
TVMW5Test20110103_bitrate_main concept

TVMW5 Divx
TVMW5Test20110103_bitrate_divx

TVMW5 CUDA H.264。CBR…だなあ、やっぱり。VBRはどうして動かないんだか…
TVMW5Test20110103_bitrate_TVMW5Cuda

MediaCoder CUDA H.264
TVMW5Test20110103_bitrate_MediaCoderCuda

こうしてみると、x264は若干メリハリのついた容量配分になっているようだ。



おまけその2

あとは参考程度にx264のHQ,MQ,LQのオプションをコマンドライン的に書いておく。色空間とかのオプションは省略。

HQ
かなり重めの設定。
--preset slow --crf 23 --aq-mode 0 --qcomp 0.7 --rc-lookahead 60 --scenecut 60 --min-keyint 4 --keyint 300 --subme 9 --merange 32 --ref 6 --trellis 2 --no-fast-pskip --no-dct-decimate --nal-hrd vbr --vbv-maxrate 17500 --vbv-bufsize 17500

MQ
本当は--me umhをつけたほうがいいかもしれないけど…
--preset fast --crf 23 --aq-mode 0 --scenecut 60 --min-keyint 4 --keyint 300 --ref 4 --nal-hrd vbr --vbv-maxrate 17500 --vbv-bufsize 17500

LQ
やたら速い。
--preset veryfast --crf 23 --aq-mode 0 --partitions p8x8,b8x8 --scenecut 60 --min-keyint 4 --keyint 300 --bframes 2 --b-pyramid 0 --mixed-refs --ref 2 --nal-hrd vbr --vbv-maxrate 17500 --vbv-bufsize 17500

あとは--crfをいじって1000kbpsに近づくよう調整。
スポンサーサイト

コメントの投稿

非公開コメント

画質速度比較

大変お疲れ様です!とても参考になりました。
TVMWも悪い商品ではないんですが
どうしてもAviutlのフィルタ類使っちゃうと・・・
TVMWはあと一押し二押しは欲しいところだと思います
x264のオプションの部分も正直ごちゃごちゃしすぎて
あそこまで項目増やすなら普通にコマンド欄作れば?
その方が誤設定減るんじゃない?って思いましたね
ただ4.0時代よりはカット等の優秀さは上がりましたね。
その辺りは評価してます。
今の段階だとその部分だけでアップグレードは・・・
もう少し様子見はしたいところですw

Re: 画質速度比較

そうですね~
TVMWはフィルタ類は頑張って欲しいところですね。
いやモザイクかけるフィルタとか
作らんでいいからもっと別の…と思います。

いやでも、TVMWは読み込みとか、カットとか、
プレビューあたりはほんと優秀です。

>x264のオプション
実際ほんとよくミスります。
この画質テストするときも、
「あ~、あのオプション忘れてた~」
みたいなことが何度もあり、オプションをそろえるのに
苦労しました。

あと個人的には、x264本家の更新をアップデート等で
追うのかどうかあたりが気になりますね。
別に本家の更新の度に追ってほしいとは言わないけど、
たとえば最近だと、chroma weightpに対応したとか、
そういう大きな更新の時はTVMWもきちんと追ってくれると
いいな~と思っています。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先(@を半角にしてください!)
rigaya34589@live.jp
github

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutlプラグイン
x264guiEx 2.xx (ミラー)
- x264を使用したH264出力
- x264guiExの導入>
- x264.exeはこちら>

x265guiEx (ミラー)
- x265を使用したH.265/HEVC出力
- x265.exeはこちら>

QSVEnc + QSVEncC (ミラー)
- QuickSyncVideoによるH264出力
- QSVEncCはコマンドライン版
- QSVEncC 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC (ミラー)
- NVIDIAのNVEncによるH264出力
- NVEncCオプション一覧>

VCEEnc + VCEEncC (ミラー)
- AMDのVCEによるH.264出力

ffmpegOut (ミラー)
- ffmpeg/avconvを使用した出力

自動フィールドシフト (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: aji様

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: まじぽか太郎様

PMD_MT (ミラー)
- SSE2~FMA3による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (ミラー使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR