Core i5-4590とPentium G3220のインターレース解除チェック

Core i5-4590
Core i5 4590 インターレース解除チェック

Pentium G3220
PentiumG3220 インターレース解除チェック

Core i5-2500K
2500k_001m2v_ss01.png

その他比較画像はこちらの記事、
Core i5-2500K の動画画質チェック
ASUS R9290-4GD5 その2

上の画像の「集」の字を中心にチェックすると判り易いが、Core i5-2500KよりもHaswell世代のCPUのインターレース解除性能は少しだけ上がっている。
そして逆テレシネ(プルダウン)検出は480iでは働くが1080iでは働かない(AMD A8-3870Kは働いた)。
Pentium G3220は処理能力的にMPC-HCのEVRカスタムプレゼンタもmadVRも使用不可。
Core i5-4590はどちらも軽負荷の設定なら使用可という感じ。

総合では、画質を重視しない使い方なら十分。
まあ、前々世代から画質の向上があった事は喜ばしい事だ。

HTPCの高画質設定 第五版

現在この記事が最新です。

映像の設定と音声の設定で記事を分けています。
最新の設定はHTPC (画質音質)ジャンルから確認して下さい。

この記事の設定はWindows8.1で確認されています。
設定で書かれていない部分は、OSや各アプリのデフォルト状態と見てください。

ハードウェア要件:
早速設定じゃない話だが、現在動画画質にもっとも必要な要件は高性能VGAカードだ。
画像処理に関するほとんどの処理をGPUで行うようになり、非常に高度な手法が使えるようになったので、最新のVGAカードでも力不足という状況になっている(参考:ASUS R9290-4GD5 その2)。
そして逆にCPU性能は不要になった。
CPUデコードするとしても2コアクラスのCPUで十分デコード出来る。
ハードウェア中でのCPUの重要度は以前に比べて大分低い。
この流れはしばらく変わらないので、今お金を掛けるならVGAカードだ。

Radeon VGAカードの設定:
Catalyst最新版を利用
・リフレッシュレートを59Hzに設定
・リフレッシュレート24Hzの追加
・HDMI出力の出力ピクセルフォーマットはRGB4:4:4(フル)に設定
・「色の管理」、「肌トーン補正」、「明るい白」、「「縁拡張」、「デノイズ」、「モスキートノイズ除去」、「ブロック解除」、「ダイナミックコントラストを有効にする」等のチェックは全て外す
・インターレース解除は自動
・「プルダウン検出」にチェック
・「強制的になめらかなビデオ再生を実行する」にチェック
NTSCやHDTVの動画は29.97fpsになっているので、リフレッシュレートをデフォルトの60Hzのままにしてると、約16.7秒に一回カクつく事になる。
59Hzにする事で無くせる。
Blu-rayの映画作品はほとんど23.976Hz(設定値では23Hz)なので24Hzが選べるモニターだとカクツキを無くせる。
もし複数のモニターを接続している場合は全てのモニターで24Hzが選べないと駄目。
出力ピクセルフォーマットは、動画画質の良い順に並べると、
RGB4:4:4(フル)≧RGB4:4:4(限定)≧YCbCr4:4:4>YCbCr4:2:2となる。
左から順に試して、輝度伸張が適切になる設定を使おう。
RGB4:4:4(フル)に比べて、RGB4:4:4(限定)とYCbCr4:4:4は情報量が約7/8になるが、動画は元々その範囲で作られているので問題は無い。
YCbCr4:4:4出力はVGAカードによって変換の質が大きく左右されるので、暗部を中心にチェックして実用に耐えるか判断しよう。
YCbCr4:2:2は色情報の解像度が縦横半分なので、あきらかに画質が劣るので使うべきではない。
「色の管理」等の画質補正機能はmadVRを利用すると無効になる。
わざわざチェックを外すように書いてるのは、負荷的にmadVRが使えない環境の為だ。
画質補正機能は積極的に使ってもいいが、元映像を忠実に再現する事を高画質とする観点からオフを指定している。
「強制的になめらかなビデオ再生を実行する」は処理能力が足りない時に強制的に低負荷な設定にし、カクツキを抑える機能。

32bit版or64bit版:
現在は動画再生にmadVRを使う為に32bit版のアプリケーションで構成するしかない。
もしmadVRの64bit版が出てくれば、64bit版のアプリケーションで構成してもOK。
音声に付いてはMPC-BEのMPC Audio Rendererが使えるので、64bit版でもOK。

デコーダーの設定:
・デコーダーは何でもOK
・H264/AVCのデコーダーの設定がある場合は、ブロック低減をするに設定
・出力はNV12
長らくデコーダーにはffdshowを勧めていたが、開発が止まってしまい、デコーダーでの画質差も事実上無いという状況なので、今回から何を使っても良いという事にした。
内蔵デコーダー有りのプレイヤーならそのままでもOK。
ただし負荷の面で差が出るので以下の違いは心に止めておいた方がいいだろう。
・外部デコーダーよりも内蔵デコーダーの方がCPU負荷もGPU負荷も低くなる。
・DXVAデコードは動画の横解像度を正確に後に渡す為、GPU負荷が低くなる。
 ただしわずかにぼけを感じる事がある。
・CPUデコードは動画の横解像度を2のべき乗倍で後段に渡す為、GPU負荷が高くなる。
 しかしDXVAよりも安定しており、わずかに鮮鋭度が高く感じる事がある。
レンダラーにmadVR等の高負荷の物を使うとGPU負荷の差が結構出てくるので、この事を覚えておいて損は無い。
GPU負荷に問題が無いのならCPUデコードの方が安定していて、わずかに画質が良い事があるのでお勧めだ(多分計算精度の差)。
H264/AVCのブロック低減は、するのが本来のデコードなので設定項目がある時は設定する。
出力はNV12にしておくのが無難だが、レンダラーにmadVRを使えばYV12でも受け付けてくれる。
ちなみにNV12とYV12はデーターの並びが違うだけなので、どこで変換しようと画質に差は無い。

madVRの設定:
最新版(v0.87.6以降)を使用
・device→表示デバイス→display modes→switch to matching display mode...にチェック。
 リフレッシュレート24Hzが選べるモニターを使っている場合は、
 list all display modes madVR may switch to:に、1080p23, 1080p24, 1080p59, 1080p60
 24Hzが選べないモニターの場合は、1080p59, 1080p60のみ
 (1080の所はモニターの解像度に合わせて変更して下さい)
・scaling algorithms→chroma upscaling→NNEDI3 64neurons。
・scaling algorithms→image doubling→use NNEDI3 to double Luma resolutionにチェック、only if scaling factor is 2.0x(or bigger)、64neurons。
・scaling algorithms→image doubling→use NNEDI3 to quadruple Luma resolutionにチェック、only if scaling factor is 4.0x(or bigger)、64neurons。
・scaling algorithms→image upscaling→Lanczos 4taps、activate anti-ringing filterにチェック。
リフレッシュレートが変更されない時は、リフレッシュレート24Hzの追加でしくじってると思われるので、VGAカードの設定を見直してみよう。
スケーリング設定は理想の設定を書いたが、これが動くVGAカードは無い(参照:madVRのNNEDI3をテスト)。
R9 290クラスでの設定例はASUS R9290-4GD5 その2
それ以下のVGAカードではNNEDI3は常用不可なのでimage doublingのチェックを外し、
HD7750クラスだと、chroma upscaling→Softcubic60+anti-ringing、image upscaling→Lanczos4+anti-ringing。
エントリーレベルのVGAだと、chroma upscaling→Softcubic80、image upscaling→Lanczos3。
(参考:madVRのスケーリング設定の考察(Jincとデフォルト値))。
madVRの設定を弄る時はCTRL+JでOSDを出しながらやると判り易い。

MPC-BE/MPC-HCの設定:
・「再生」→「出力」→「madVR」にチェック
・「内部フィルタ」→「変換フィルタ」内のチェックを外部フィルタに任せたい物は外す
・「外部フィルタ」で使用したいフィルタを設定
MPC-BEとMPC-HCでは画質に差は無いが安定度でMPC-HCに、音質面でMPC-BEにメリットがある。
MPC-BE 安定板 最新版
MPC-HC 安定板 最新版
ただ実の所、画像処理のほとんどをmadVRに任せるようになった為、プレイヤーはMPCに拘らなくても良い。
音質の問題もReclockを使えば解消出来るのでマストでは無い。
レンダラーにmadVRが選べるプレイヤーなら好きな物を使って問題無い。

過去記事:
HTPCの高画質設定 第4版 (2012/1/2)
HTPCの高画質設定 その3 (2010/9/15)
HTPCの高画質設定 その2 (2009/10/3)
HTPCの高画質設定 (2007/4/28)

ASUS R9290-4GD5 その2

その1
R9 290の一般的なベンチとか消費電力とか発熱とかは、ネット検索を掛ければいくらでも出てくるので、動画画質に関するテストをこの記事ではしていきます。

ドライバインストール後チェックしたら、カタリストのビデオの項目がHD7750に比べて増えていた。
CCC1.png
その中で特に注目したのが、インターレース解除に追加された適応ディレクション。
ベクター適応よりも上の位置づけだ。
PCで出来るインターレース解除では、RADEONのベクター適応がもっとも優れていると思っていたので、それ以上があった事に驚いた。
なのでまずこれをテストした。

縦にスクロールするスタッフロール動画を使ったインターレース解除チェック
適応ディレクション
R9290 EVR 適応ディレクション

ベクター適応
R9290 EVR ベクター適応
どちらもレンダラーはEVR、比較用の画像はCore i5-2500K の動画画質チェックにある。
比べると適応ディレクションは鮮鋭度が高くエッジが出る。
その代わり解除ミスも出やすいようで「集」の字で判り易くミスしてる。
ベクター適応の画質はRADEONの今までの物と同じ、隅が丸まり滲ませてる感じがあり、若干すっきりしない。
ただしミスも少ない。
処理負荷は適応ディレクションがベクター適応に比べて2倍強高く、なるほどミドルクラスのVGAカード辺りでは出てこない訳だ。
プルダウン検出もベクター適応の倍くらい早い。
もうちょっと解除ミスが出ないようにチューニングして欲しいが、現状でも総合で上回ってると思うので、設定項目に出てくる時はそのまま使っていいだろう。

次にスケーリングの性能を試してみた。
EVR
VE EVR 適応ディレクション
比較用の画像はPowerDVD10 ffdshow TMT5 の画質チェックを見て欲しい。
Radeon HD4650よりもスケーリングの性能が悪い。
何故かは判らない。
念の為プレイヤーをMPCとPowerDVD、インターレース解除を適応ディレクションとベクター適応で試したがすべて同画質だった。
現在ではスケーリングはmadVRに任せているので重要では無いが、残念な結果だ。

今後の比較用
HQV EVR 適応ディレクション_1 HQV EVR 適応ディレクション
(参照:madVRのNNEDI3をテスト)

その他テストした項目:
●縁拡張
ただの輪郭強調
VE EVR ベクター適応 縁拡張5

●輪郭矯正
デバンド(deband)の事らしい。
アニメをあまり見ないのでバンディングの出るソースに心当たりが無いが、HQVの青空でテストしてみたら無くなったかもという感じだった。
(元々薄っらだったのでよく判らない)

●高度なアーチファクト除去
テスト映像では効いてるのかどうか判別出来なかった。
つまり悪影響は無いのでチェックを入れても問題無しという事。

最後にmadVRで何処までの設定が出来るか。
HD7750とR9 290の性能差は約4.4倍、7750でテストした時のNNEDI3の処理負荷から予測するとneuron32が使えるかどうかという感じだ。
そして実際に可能だった設定がこれ、
madVR6.png
madVR2.png
madVR3.png
madVR4.png
madVR7.png
プロファイルを使わないならNNEDI3 neuron16が限界という所か。
2K→4KにNNEDI3を使うなんて現行のGPUではやはり無理っぽい。
そして上の設定で動かしてると大きな問題になるのが発熱だ。
各レビューで酷評されている通り、リファレンスクーラーがまったく冷えない。
デフォルトのファン回転数の最大が47%、この時ドライヤー並みに五月蠅いのに排熱が十分では無い。
設定を変えればファンを100%で回す事も出来るが掃除機以上の騒音、なるほどこりゃダメだ。
リファレンスクーラーを購入していいのはファン交換前提の人か、PCを部屋の外に出せるような人だけだろう。
それ以外は安物買いの銭失いだ。
私は色々為になったので、勉強代って事で今回はOKとしよう。
そして暖かくなる頃に値段の落ち着いたオリジナルクーラーの製品に買い換えよう。

madVRのNNEDI3をテスト

madVR v0.87.4でNNEDI3をテストした。
テスト時の構成と表記は前記事に準じます。

NNEDI3が選択出来るのはimage doublingとchroma upscalingの項目。
chroma upscalingのNNEDI3は他の手法を選択した時と動作が違うと思われる。
NNEDI3は拡大率2倍か4倍にしか対応してないので、NNEDI3だけで画面解像度に拡大する事は出来ない。
なので多分NNEDI3で2倍にしてimageと解像度を合わせた後はimage upscalingで選択した手法で、画面解像度に拡大しているのではないかと想像する。
まずはchroma upscalingの方をテスト、上記の理由でimage upscalingはlz3+arで統一。

lz3+ar、NNEDI3 neuron16↓
HQV lz3ar-neuron16

lz3+ar、NNEDI3 neuron32↓
HQV lz3ar-neuron32

lz3+ar、NNEDI3 neuron64↓
HQV lz3ar-neuron64

lz3+ar、NNEDI3 neuron128↓
HQV lz3ar-neuron128

lz3+ar、NNEDI3 neuron256↓
HQV lz3ar-neuron256

比較用、lz3+ar、sc60+ar↓
HQV lz4ar-sc60ar

lz3+ar、lz3+ar↓
HQV lz3ar-lz3ar

特筆すべきはリンギングの無さで、それに加えて輪郭も滑らか。
neuron16では少しむらが出るが、neuron64以上では感じられない。
比較用のSoftCubicやLanczosと比べてもはっきりと優位性が判る。
ただし非常に負荷が高い。
Radeon HD7750で試したが、neuron16で1440x1080i→1920x1080pでGPU負荷90%になってしまい、常用不可だった。

次にimage doublingのテスト。
NNEDI3は2倍のみでChromaも有効にしてチェック。
組み合わせるupscalingには、
image:lz3+ar
chroma:NNEDI3
を使用した。

NNEDI3 neuron16(chroma upscalingもneuron16)↓
HQV nned13neuron16 i VE nned13neuron16-sc60ar HQV nnedi13neuron16 lz3ar-neuron16

NNEDI3 neuron32(chroma upscalingもneuron32)↓
HQV nned13neuron32 i VE nned13neuron32-sc60ar HQV nnedi13neuron32 lz3ar-neuron32

NNEDI3 neuron64(chroma upscalingもneuron64)↓
HQV nned13neuron64-sc60ar i VE nned13neuron64-sc60ar HQV nnedi13neuron64 lz3ar-neuron64

NNEDI3 neuron128(chroma upscalingもneuron128)↓
HQV nned13neuron128-sc60ar i VE nned13neuron128-sc60ar HQV nnedi13neuron128 lz3ar-neuron128

NNEDI3 neuron256(chroma upscalingもneuron256)↓
HQV nned13neuron256-sc60ar i VE nned13neuron256-sc60ar HQV nnedi13neuron256 lz3ar-neuron256

比較用にlz4+ar、sc60+ar↓
HQV lz4ar-lz4ar i VE Luma=Lz4+AR Lz4+AR #1 HQV lz4ar-sc60ar

全て同じ位置から切り出したがNNEDI3は映像が左上にずれてる。
左側の画像を見てみると、比較用のLz4よりもNNEDI3の方が数字の輪郭が滑らかに繋がっているのが判る。
chroma upscalingのテストの時よりも判り易い。
neuron値を上げていく程滑らかになっていき、neuron64以上できれいに繋がっている。
真ん中の画像を見るとneuron16と32では濃淡が薄く、鮮鋭度に疑問を感じるが、neuron64以上で問題無し。
縦線が均一では無いのはNNEDI3の仕様か。
このテストからでは鮮鋭度はLanczosより低く、ジャギーやリンギングが出ない事がメリットの手法に見えるが、普通の動画だとNNEDI3 neuron16でもLanczosよりくっきりした映像になる。
NNEDI3がどのような処理なのかネット検索してみたら、フィードバックループの有る適応型の処理っぽい。
となると映像によって印象が異なるのも納得が行く。
テスト映像で出るデメリットよりも、実使用時のメリットの方が大きいと感じるので、使える環境ならNNEDI3は積極的に使った方が良いと思う。
最後に右側の画像だが、chroma upscalingの結果と有意差無し。
改善を感じられないので、負荷が問題になる時はchroma upscalingでだけNNEDI3を使えば良い。

以上からベスト設定を決めるとすると、

chroma upscalingはNNEDI3 neuron64。
image doublingでdoubleにチェック(Chromaはチェックしない)、neuron64。
image doublingでquadrupleにチェック(Chromaはチェックしない)、neuron64。
only if scaling factor is 2.0x(or bigger)、only if scaling factor is 4.0x(or bigger)にチェック。
image upscalingはlz3+arまたはlz4+ar。
image upscalingは好みで微調整すればいい。

となる。
neuron256では無くneuron64を指定しているのは64~256の間で大きな差は無いから。
処理能力に余裕があれば値を上げてもよいが、そんな事にはならないだろう。
image doublingのChromaにチェックしないのも負荷の観点から。
only if scaling factor is 2.0x(or bigger)、only if scaling factor is 4.0x(or bigger)を指定しているのも、同じ理由、それ以外の設定だと縮小処理が入るが、縮小も負荷が掛かる。
もっと負荷を下げたい場合は、quadrupleのneuron値を32にする。
次にneuron値を全体に下げる。
となる。
基本的にはRadeon HD7850以上のVGAカードじゃないと常用は無理のようだ。

負荷の下げ方についてはmadVRの作者のmadsh氏の説明が参考になる。
http://forum.doom9.org/showpost.php?p=1664822&postcount=22117


総評、DVD解像度からHD解像度でのテストだったが、madshi氏がNNEDI3を実装したのは多分2K→4K解像度へのアップスケーリングを見据えての物だと思う。
今出来る一番の高画質はBlu-rayを高性能なアップスケーリングで4Kにする事だ。
等倍拡大ならNNEDI3のみで処理出来る。
しかし悩ましい事にNNEDI3で2K→4K出来るVGAカードは多分無いだろう(設定を大分妥協すれば出来るかも)。
最高画質に要求されるマシンパワーが最新ゲーム並というのは凄い話だ。
だからこそ挑み甲斐があり、HTPCをやる意味があるという事か。


おまけ:
・debandについて
 →アニメをあまり見ないのでテストしてません。
 バンディングが目につく映像に遭遇した時にテストする予定。

・誤差拡散法について
 →trade quality for performanceのuse random dithering instead of OpenCL error diffusionの項目、テストしてません。
 誤差拡散法は収束しないとか、関連の無い画素に歪みを与えてしまうという点で、問題のある手法と考えてるので否定的です。

madVRのスケーリング設定の考察(Jincとデフォルト値)

予備知識として以下の2つの記事を先に読むとわかり易いです。
madVR (ffdshowとのリサイズ画質比較)
madVRのanti-ringingのテスト

今回は以下の専門用語が出てきます。
artifact:hide source artifactはソースのアラを隠すという意味
aliasing:madVRでは主にジャギーの事を指していると思われる


madVR v0.85.8でJincと新デフォルト値をテストした。
テスト時の構成:
プレイヤーはmpc-hc
デコーダーはffdshow、YV12出力をmadVRで720x480→1920x1080。

アルゴリズム名等の略表記:
Bicubic → Bc
Softcubic → Sc
Lanczos → Lz
Jinc → Jn
anti-ringing → ar
例:Lz4+ar、Sc100 → Image(輝度) Lanczos tap4 + anti-ringing、Chroma(色差) Softcubic 100
madVRの設定項目の順序とはImageとChromaが逆なので注意して下さい。
以前の記事でLumaとなっている箇所が今回の記事ではImageとなっています。
これはmadVRの表記変更に合わせた変更です。

HQV Benchmark DVDの1シーンを使ってテスト。
Jn3+ar、Jn3+ar↓
hqv jn3+ar,jn3+ar #1 hqv jn3+ar,jn3+ar #2

Jn4+ar、Jn4+ar↓
hqv jn4+ar,jn4+ar #1 hqv jn4+ar,jn4+ar #2

Jn8+ar、Jn8+ar↓
hqv jn8+ar,jn8+ar #1 hqv jn8+ar,jn8+ar #2

Lz3+ar、Lz3+ar (以下3つはJincとの比較用)↓
hqv lz3+ar,lz3+ar #1 hqv lz3+ar,lz3+ar #2

Lz4+ar、Lz4+ar↓
hqv lz4+ar,lz4+ar #1 hqv lz4+ar,lz4+ar #2

Lz8+ar、Lz8+ar↓
hqv lz8+ar,lz8+ar #1 hqv lz8+ar,lz8+ar #2

Lz3、Bc75 (デフォルト)↓
hqv lz3,bc75 (default) #1 hqv lz3,bc75 (default) #2

Lz4、Sc100 (旧デフォルト)↓
hqv Lz4,Sc100 #1 hqv Lz4,Sc100 #2

負荷の高いJincを使おうと考えている人はanti-ringingも当然使うだろうから、Jincは全てanti-ringing有りで画像を撮った。

madVRの製作者のmadshi氏はJincのaliasingを皆無として、これを持ってJincがもっとも理想的なリサイズ手法としている。

ここで質問に答えているが、
http://forum.doom9.org/showthread.php?p=1611234#post1611234
1. In an ideal world, with the perfect graphics card and CPU, what resizer settings give the best results ?
Chroma and Luma upscaling: Jinc3 with anti-ringing turned on and linear light turned off.
Luma downscaling: Catmull-Rom with anti-ringing and linear light turned on.
だそうだ。

JincとLanczosの比較画像もmadshi氏自身が上げている。
http://forum.doom9.org/showthread.php?p=1595556#post1595556

一般的な画像でのLz4+arとJn4+arの比較。
http://forum.doom9.org/showthread.php?p=1594557#post1594557

madshi氏本人が十分説明してるので、Jincに付いてこれ以上語れる事は無い。
だから実はJincについての記事を書くつもりが無かった。
だけどJincは負荷が高過ぎて利用出来ない環境が多く、私が使っているRadeon HD7750でも1440×1080iを1920×1080にするとGPU負荷が93~97%になるので、カク付きが出て常用出来ない。
Radeonはハードウェアインターレース解除の負荷が高いので、GeforceやIntelよりも余裕が無い。
なのでmadshi氏がベストと掲げる設定よりも低負荷な設定に需要があると考えて記事を書く気になった。

ここで突然だがデフォルト設定の話に移る。
スケーリング手法の新しいデフォルト値のLz3、Bc75は理解に苦しんだ。
ImageのLanczos3は品質と負荷から納得が行くが、ChromaのBicubic75はリンギングが強すぎてImageとのバランスが悪い。
拡大率の大きいChromaはImageに比べてだいたい1/2から1/4程度、リンギングの弱い手法を選択するのが好適だと感じてる。
なによりもBicubicはLanczosより質が悪い。
リンギングが強くていいならChromaもLanczos3がいいし、そうじゃないならSoftcubicが適当だ。
わざわざBicubicを使う意味がよく判らない。
色々考えてみたが、多分hide source artifactが無い(ソースのアラを隠さない)手法の中で他の問題が目立たず、負荷も低いという基準で選んだのだろうと推察した。
madshi氏はImageもChromaもJinc3+arがベストと定義したから、その方針に合うようにデフォルト値を変更したのではなかろうか。
hide source artifactの効果の高い(=にじむ、ボケる)、SoftcubicではJincとは指向が違ってて、一貫性が無くなってしまう。
しかしこのブログではそんな事は気にせず、見た目にリンギングの量が同じかどうかを重視して、設定値を選ぶ事にした。
それが以下。

VGAカードの能力が十分にあり、ImageにだけJincを使う場合の設定、
Jn3+ar、Sc80+ar↓
hqv jn3+ar,sc80+ar #1 hqv jn3+ar,sc80+ar #2
もっと鮮鋭度が高い方が良い場合はJn4+ar、Sc70+arかJn8+ar、Sc60+ar。
もっと負荷を下げたい場合はChromaのanti-ringing無し。
それでもギリギリカク付くなら、trade quality for performanceタブを開いて、「use 10bit chroma buffer instead of 16bit」と「use 10bit image buffer instead of 16bit」にチェック。
10bit処理に変更しても見ても判らない程度の差しかないはず。

Jincは諦めた方が良いぐらいのVGAカードでの設定、
Lz4+ar、Sc70+ar↓
hqv lz4+ar,sc70+ar #1 hqv lz4+ar,sc70+ar #2
私はこの設定を常用。
Radeon HD7750だと最大でGPU負荷40%近辺で、発熱的にも余裕があって無理が無い。

エントリークラスのVGAカードでの設定、
Lz3、Sc80↓
hqv Lz3,Sc80 #1 hqv Lz3,Sc80 #2
HTPCの高画質設定 第4版で紹介した設定。
この頃はanti-ringingがなかった。
どちらかにanti-ringingを掛ける余裕があるならImageの方。
Radeon HD6570クラスだとこの設定が常用限界。

JincとLanczosの実質的な差は、キーボードショートカットでスケーリング手法とタップ数の変更をキーに割り当てて、動画再生中に変更して、自分の目で確認してみて欲しい。
通常の動画ではJincとLanczosの判別が出来ないと思う。
私はブラインドテストで当てられない自信がある。
そういう意味ではJincは負荷の割りには効果の少ない手法と言える。
anti-ringingの方が負荷に比しての効果がずっと高い。
なので今の所個人的にはJinc利用に拘らず、ファンレスのVGAカードで無理なく使える負荷のLanczosで良いと感じてる。
もしかしたらアニメを良く見る人だとまた違う判断になるのかもしれない。


おまけ:
Cutmul-Rom+scale in linear light、Cutmul-Rom↓
hqv cr+sll,cr #1 hqv cr+sll,cr #2

Cutmul-Rom+ar+scale in linear light、Cutmul-Rom+ar↓
hqv cr+ar+sll,cr+ar #1 hqv cr+ar+sll,cr+ar #2
縮小時の手法として選択されているが、拡大に利用するとこうなる。
Bicubic75よりもリンギングが少ないが濃淡が薄い感じになる。

比較用に、
Bc75、Bc75↓
hqv bc75,bc75 #1 hqv bc75,bc75 #2

Bilinear、Bilinear↓
hqv bilinear #1 hqv bilinear #2
リサイズ手法が特記されてない場合はこの手法が使われていると思って間違いない。
手法としては低級でボケは多いが素直。
ボケの多さについては白黒の画像の方で他と比較すると判りやすい。
これよりも鮮鋭度が高く、かつ欠点の少ない方法を求めて、様々なスケーリング手法が生まれた。

madVRのanti-ringingのテスト

madVR v0.83.0以降に搭載されたanti-ringingフィルタのテストをした。
テスト時の構成:
プレイヤーはmpc-hc
デコーダーはffdshow、YV12出力をmadVRで720x480→1920x1080。
アルゴリズム名等の表記を略。
Lanczos → Lz
Softcubic → Sc
aniti-ringing → AR
例:Lz4+AR、Sc100 → Luma(輝度) Lanczos tap4 + aniti-ringing、Chroma(色差) Softcubic 100
madVRの設定項目の順序とはLumaとChromaが逆なので注意。

HQV Benchmark DVDの1シーンを使ったテスト。
Lz3、Sc80↓
HQV Luma=Lz3 Chroma=Sc80 #1 HQV Luma=Lz3 Chroma=Sc80 #2 HQV Luma=Lz3 Chroma=Sc80 #3

Lz3+AR、Sc80+AR↓
HQV Luma=Lz3+AR Chroma=Sc80+AR #1 HQV Luma=Lz3+AR Chroma=Sc80+AR #2 HQV Luma=Lz3+AR Chroma=Sc80+AR #3

Lz4、Sc80↓
HQV Luma=Lz4 Chroma=Sc80 #1 HQV Luma=Lz4 Chroma=Sc80 #2 HQV Luma=Lz4 Chroma=Sc80 #3

Lz4+AR、Sc80+AR↓
HQV Luma=Lz4+AR Chroma=Sc80+AR #1 HQV Luma=Lz4+AR Chroma=Sc80+AR #2 HQV Luma=Lz4+AR Chroma=Sc80+AR #3

Lz8+AR、Sc60+AR↓
HQV Luma=Lz8+AR Chroma=Sc60+AR #1 HQV Luma=Lz8+AR Chroma=Sc60+AR #2 HQV Luma=Lz8+AR Chroma=Sc60+AR #3

Lz8、Lz8↓
HQV Luma=Lz8 Chroma=Lz8 #1 HQV Luma=Lz8 Chroma=Lz8 #2 HQV Luma=Lz8 Chroma=Lz8 #3

Lz8+AR、Lz8+AR↓
HQV Luma=Lz8+AR Lz8+AR #1 HQV Luma=Lz8+AR Lz8+AR #2 HQV Luma=Lz8+AR Lz8+AR #3

「Lz8、Lz8」と「Lz8+AR、Lz8+AR」の画像が分かり易いが、aniti-ringingで可也のリンギングが消えている。
ちなみにリンギングは拡大率の大きい色差の方が分かり易いので、そちらを重点的に見る事をお勧めします(色の付いてる画像の方です)。
しかしChroma(色差)をSc80やSc60にした画像とLz8にした画像を比較すれば、完全にリンギングが無くなる訳では無い事も分かる。
元々がリンギングの強い手法だと少し残ってしまう。
またSc80のようなリンギングがほとんど無い設定でも、色の境目にある黒い縁が消えてシャープになる効果があり、aniti-ringingを有効にした方が画質的に好ましいという結果が出た。
(黄色と水色の境が分かり易い)

Video Essentialsの1シーンを使ったテスト。
Lz4、Lz4↓
VE Luma=Lz4 Chroma=Lz4 #1 VE Luma=Lz4 Chroma=Lz4 #2

Lz4+AR、Lz4+AR↓
VE Luma=Lz4+AR Lz4+AR #1 VE Luma=Lz4+AR Lz4+AR #2

Lz8、Lz8↓
VE Luma=Lz8 Chroma=Lz8 #1 VE Luma=Lz8 Chroma=Lz8 #2

Lz8+AR、Lz8+AR↓
VE Luma=Lz8+AR Lz8+AR #1 VE Luma=Lz8+AR Lz8+AR #2

斜め縞も縦縞も均一なまま、リンギングだけ消えてる。
例えば一般的な輪郭強調だとこうなる
Lz8+ARの方がLz4よりも全体的にリンギングが少ないのも見て取れる。
以上のテストではaniti-ringingを使う事による画質的なダメージは見つけられなかった。
それは通常の映像を目で見ても同様の結果だった。

従来設定からの変更の指針を書くと、現在使用中の設定からLuma(輝度)もChroma(色差)もaniti-ringing有効にして、1~2段階リンギングの強い設定にするのがいいだろう。
例えば「Lz4、Sc100」に設定していたのなら「Lz8+AR、Sc80+AR」、「Lz3、Sc80」に設定していたのなら「Lz4+AR、Sc70+AR」~「Lz8+AR、Sc60+AR」。
またもしスケーリングアルゴリズムにLanczosかSoftcubic以外を使っている場合は、このどちらかに変更する事をお勧めする。
それ以外のスケーリングアルゴリズムはリンギングを消せる以上、ほとんど使う意味が無い。
もし「Lz8+AR、Sc60+AR」が問題無しなら、「HTPCの高画質設定 第4版」のように設定している方は、ffdshowのスケーリングを利用する設定を削り、スケーリングは完全にmadVRに任せるといい。
その方が画質が良い。
ただし問題になるのはGPU負荷だ。
Radeon HD6570で「Lz8+AR、Sc60+AR」に設定して、1440x1080iの動画を1920x1080で再生するとGPU負荷が80~82%まで上がる。
ここまで負荷が上がるとコマ落ちする。
負荷の問題を解消する方法はより高性能のVGAカードへの交換がベストだろう。
今後の事を考えると安くなってるHD7750辺りか。
もしくはChroma(色差)はaniti-ringing無効の従来設定に戻すかだ。
高画質化の為に必要なマシンパワーはどんどん上がっている。

HTPCの高画質設定 第4版

映像の設定と音声の設定で記事を分けています。
最新の設定はHTPC (画質音質)ジャンルから確認して下さい。

2012/3/30記事内容一部更新

今回からWindows7/VistaをターゲットにしてWindowsXPに対する記述を無くしました。
設定で書かれていない部分はデフォルト状態と見なしてください。

OSの設定:
Aeroを切ると画質が上がる事があるようだ。
設定方法は、システムのプロパティ→詳細設定→パフォーマンス設定→「デスクトップ コンポジションを有効にする」をオフ。
もしくはデスクトップのカスタマイズ(画面上の何も無い所を右クリック)→個人設定で「ベーシックテーマとハイコントラストテーマ」の中から選ぶ。
何故これで画質が上がるのか理由は不明。
処理上の変化は画面上のコンテンツをグラフィックスメモリ内で合成してから描画から、直接ディスプレイデバイスに描画に変わり、GPU負荷が下がる事が確認できるぐらい(CPU負荷は上がるらしいが動画再生では判別出来ない)。
もしかすると、ピクセルフォーマットの変換が複数回起こる場合に画質が低下するのかもしれない。
例えば、動画(Y:16-235、CbCr16-240)をグラフィックメモリ内で一度出力画面(RGB4:4:4/Y:0-255、CbCr1-255)に変換→出力ピクセルフォーマットに合わせて再変換(YCbCr4:4:4/Y:16-235、CbCr16-240)という処理が起きる場合に、2度の変換で画質劣化しているのかもしれない。
目で見て違うと感じたらAeroオフを使用、ただし画面割れ等が起き易くなるので見て差が無い場合はAeroオンが良いだろう。

DirectXの設定:
最新版
動画再生にもDirectXを使用しているので最新版にしておきましょう。

Radeon VGAカードの設定:
・Catalyst最新版を利用
・リフレッシュレートを59Hzに設定
・リフレッシュレート24Hzの追加
・HDMI出力の出力ピクセルフォーマットはRGB4:4:4(フル)に設定
・「色の振動」、「肌トーン補正」、「縁拡張」、「デノイズ」等のチェックは全て外す
・「強制的になめらかなビデオ再生を実行する」にチェック
・インターレース解除は自動または「ベクター適応」
・「プルダウン検出」にチェック
最近のCatalystではバージョンによる画質差が大分無くなってきた。
とりあえず最新版を入れて興味があれば古いバージョンを試してみるといい。
半年に1度ぐらいの更新で十分だ。
NTSCのフィールド周波数は59.94Hzなので、もしリフレッシュレートを60Hzにすると29.97fpsの動画で約16.7秒に一回カクつく事になる。
(DVD等も含む動画の多くは29.97fps)
リフレッシュレート24Hzはモニターが対応している時のみ追加、複数のモニターを接続している時は全てのモニターに対して追加しないと駄目。
出力ピクセルフォーマットは、動画画質の良い順に並べると、
RGB4:4:4(フル)≧RGB4:4:4(限定)≧YCbCr4:4:4>YCbCr4:2:2となる。
左から順に試して、輝度伸張が適切になる設定を使おう。
RGB4:4:4(フル)に比べて、RGB4:4:4(限定)とYCbCr4:4:4は情報量が約7/8になるが、動画は元々その範囲で作られているので大きな問題は無い。
YCbCr4:4:4出力はVGAカードによって変換の質が大きく左右されるので、暗部を中心にチェックして実用に耐えるか判断しよう。
YCbCr4:2:2は色情報の解像度が縦横半分なので、あきらかに画質が劣るので使うべきではない。
インターレース解除は一番優れているアルゴリズムは「ベクター適応」だが自動にしておけば使われるのであえて設定しなくても良い。
性能の低いVGAでは高解像度動画に「ベクター適応」を掛けると処理能力が足りない気味なので自動的に軽いアルゴリズムに変更される自動の方が使い勝手がいい。
「色の振動」等の画質補正機能は積極的に使っていってもいいが元映像を忠実に再現する事を高画質とする観点からオフ。
「強制的になめらかなビデオ再生を実行する」は処理能力が足りない時に強制的に低負荷な設定にし、カクツキを抑える機能。
HD4650で色々試したがGPU負荷が80%を越えると負荷の軽い設定に変更するようだ。
またそうじゃなくても偶に起きるカクつきを無くしてくれるので基本オンにした方が良いようだ。

32bit版or64bit版:
そろそろこの選択肢が問題になる頃だと思う。
現状は、動画再生にmadVR、音声再生にReClockを使う為に、32bit版のアプリケーションで構成するしかない。
もしmadVRとReClockの64bit版が出てくれば、64bit版のアプリケーションで構成してもOK。
ReClockが駄目でも、MPC Audio Rendererが使い物になれば、64bit版で構成してもOK。

PowerDVDの設定:
・「動画」→「ハードウェアアクセラレーション機能を有効にする」にチェック
・「動画」→「詳細設定」→「インターレース解除アルゴリズム」→「ハードウェアインターレース解除を使用する」にチェック
・「動画」→「詳細設定」→「インターレース解除アルゴリズム」→「ハードウェアインターレース解除を使用する」の下のタブは「デフォルト」
DVD、Blu-ray再生で、現状ベストの回答はPowerDVDだと思う。
(参照:PowerDVD10 ffdshow TMT5 の画質チェックPowerDVD、WinDVD、TotalMedia Theatre 3 の画質チェック)
またPowerDVDをインストールすると使えるCyberlink Video/SP Decoderは、DxVAを使うデコーダーの中で、もっとも安定していて画質も良い。
次点がWindows7に最初から入ってるデコーダだがこちらの方が画面比率がおかしくなる等の不具合が出やすい。
ただし、最近のCPUならデコードごとき、DxVAを使わなくて良いのでffdshowでデコードする方が安定する。

ffdshowの設定:
最新版を使用
・「コーデック」→右クリックで「安定な形式すべてをlibavcodecに設定する」
・「コーデック」→「H264/AVC」の「安全な場合はブロック低減をスキップする」「常にブロック低減をスキップする」のチェックを外す
・「コーデック」→MPEG2をlibmpeg2にする
・プリセットを利用して動画によって設定を変えるのでffdshowのプリセットの利用を参照して「default」「mpeg usage」「sd usage」の3つを用意する
・以下、「sd usage」用の設定
・「インターレース解除」にチェック
・「インターレース解除」→「方法」に「Yet Another DeInterlacingFilter (yadif)」
・「インターレース解除」→「フレームレートを倍にする」にチェック
・「リサイズ」にチェック
・「リサイズ」→「スクリーンの解像度にリサイズする」にチェック
・「リサイズ」→「設定」→ロックを解除
・「リサイズ」→「設定」→「正確な丸め処理」にチェック
・リサイズ手法は2つの設定値を提示する、
 +鮮鋭度高く、リンギング大:
  輝度の手法:「Lanczos」/輝度のタップ数:8
  色差の手法:「Lanczos」/色差のタップ数:3

 +鮮鋭度最高、リンギング特大:
  輝度の手法:「Sinc」/輝度のタップ数:無し
  色差の手法:「Lanczos」/色差のタップ数:3

・「出力」→「RGB32」にのみチェック
・「出力」→「RGB 変換」→「YV12からRGBへの高品質変換」にチェック
・「出力」→「RGB 変換」→「ディザリング」にチェック
ffdshowは安定しているので最新版の使用でOK。
「H264/AVC」のブロック低減は、するのが本来のデコードなのでチェックを外す。
今回から動画によって設定を変える為、プリセットを活用する事にした。
上で説明しているのは低解像度の動画用のみなので注意して欲しい。
リサイズとインターレース解除は必要なので何処かで処理しないといけない、「default」「mpeg usage」のプリセットではmadVRレンダラーで処理するが、低解像度動画ではffdshowのタップ数の多い、鮮鋭度の高いリサイズ手法を使う。
リサイズ手法は2つの設定値を提示したので、好みな方を使う。
どちらでも色差のタップ数が低いのは、色差の方がリンギングが目立つからだ。
(参照:madVR (ffdshowとのリサイズ画質比較))
初登場のSinc関数は、本来理想的な補間カーネルであるが、タップ数を増やさないと精度が出ない。
ffdshowに実装されているSincで15~20タップぐらいだと思う。
タップ数が増える程リンギングが酷くなるのでSincは今の所映像用には向いておらず、少ないタップ数で良い結果が出るLanczosの方が映像用では評価されている。
だがSincも色差に使わなければ、そんなにリンギングが気にならないので、採用する事にした。
これらより鮮鋭度の低い手法は、madVRレンダラーに任せた方が良いので、選択肢にない。
「YV12からRGBへの高品質変換」はクロマアップサンプリングに精度の高い手法を使う、チェックしない方が画がくっきりするように見えるかもしれないが、色の境界がおかしくなるので必ずチェックしよう。

madVRの設定:
最新版(v0.80以降)を使用
・Chroma:SoftCubic softness:80 / Luma:Lanczos 3taps に設定
・その他詳細はmadVR (ffdshowとのリサイズ画質比較)を参照。
ビデオレンダラーはmadVRをメインで使う。

MPC-HCの設定:
最新版使用
・「再生」→「出力」→「EVRカスタムプレゼンタ」にチェック
・「再生」→「出力」→「サーフェス」を「3D surfaces(recommended)」
・「再生」→「出力」→「補間方法」を「Bicubic A=-0.60(PS 2.0)」
・「再生」→「出力」→「madVR」にチェック(EVRカスタムプレゼンタの設定終了後)
・「再生」→「フルスクリーン」→「自動変更を使用(Use autochange fullscreen monitor mode)」にチェック
・「再生」→「フルスクリーン」で23.976fpsに該当する箇所を23Hz
・「再生」→「フルスクリーン」で59.94fpsに該当する箇所を59Hz
・「内部フィルタ」→「変換フィルタ」内のチェックを外部フィルタに任せたい物は全て外す。
・「外部フィルタ」で使用したいデコーダを設定
・ウィンドウ右クリック→シェーダー→「Select Shaders」で「YV12 Chroma Upsampling」を追加
・ウィンドウ右クリック→シェーダー→「Select Shaders」で「Enable pre-resize pixel shaders」にチェック
・ウィンドウ右クリック→レンダラ設定→リセット→最適なレンダラ設定
最新版の配布サイトはXvidVideo.RUXhmikosR's builds
最新版でもある程度安定しているので、まずは入れて試してみる事をお勧めする。
出力は「madVR」をメインで使うが、若干不安定で心元無いので、「EVRカスタムプレゼンタ」の設定もしておく。
内蔵VGAクラスだと負荷的に、「madVR」も「EVRカスタムプレゼンタ」も使えない事があり、「EVR」になるかもしれない。
「YV12 Chroma Upsampling」は何時のバージョンからかデフォルトが無効に変わったようなので忘れずに設定。
「EVRカスタムプレゼンタ」使用時は忘れずに「リサイズ前のシェーダーを有効する」にチェックして「YV12 Chroma Upsampling」を有効にしよう。
出力と設定による画質に順番を点けると、
A:「madVR」
B:「EVRカスタムプレゼンタ」/「Bicubic A=-0.60(PS 2.0)」/「YV12 Chroma Upsampling」
C:「EVR」
D:「EVRカスタムプレゼンタ」/「Bilinear」/「YV12 Chroma Upsampling」
E:「EVRカスタムプレゼンタ」/「Bicubic A=-0.60(PS 2.0)」
と定義すると、Radeonの場合A>B>C≒D>E。
フルスクリーン時の「自動変更を使用」で23Hz等が出てこない場合はモニターが対応してないか、リフレッシュレート24Hzの追加でしくじってるのでVGAの設定を見直してみよう。
「レンダラ設定」はEVRカスタムプレゼンタ使用時に有効になる設定。
なので、この設定のテストをする時は、EVRカスタムプレゼンタに切り替えよう(シェーダーを有効にするのを忘れずに)。
レンダラ設定で、最適なレンダラ設定を選択すると私のシステムでは「デスクトップ コンポジション(Aero)の無効化」がチェックされた。
こうなる理由をネットで探してみたが特に説明が見つからないのでオーバーレイを使用できるようにする為か、GPU負荷を下げる為か、上のOSの設定で書いたような理由の為だと推測する。
Aeroオンオフの差が目で見てもわからない場合はチェックを外しても問題無いと思う。
「最適なレンダラ設定」すると、非常にGPU負荷の高い設定にされるので、変更が必要になる環境が多いと思う。
「レンダラ設定」→「表示」の項目で、
「完全な浮動小数点演算をする」>「半浮動小数点演算をする」>「10ビットRGB出力(浮動小数点演算のチェックは外す)」>チェック無し
が、負荷の重い順なので左から順に試して、まともに動く所を探そう。
「10ビットRGB出力」以上は見て判る差があるか微妙なので、そんなに拘らなくても良い。
(参照:HIS H657H1Gの下のおまけ)
これよりも「Bicubic A=-0.6」や「YV12 Chroma Upsampling」の方がずっと画質に対する影響力が高い。
現在何が使われているか知りたい場合は動画再生中にMPC-HCのウインドウ内で右クリック→フィルタ。

過去記事:
HTPCの高画質設定 その3 (2010/9/15)
HTPCの高画質設定 その2 (2009/10/3)
HTPCの高画質設定 (2007/4/28)

ffdshowのプリセットの利用

ffdshowのプリセットを利用する事で、ファイル名や解像度等の諸条件で映像設定を変更できるようになり、デコーダーをffdshowにまとめる事が出来るようになる。
プリセットの利用法をMPEG2デコードを例に取って解説。

・「コーデック」→「MPEG2」に「libmpeg2」を設定、「DVDデコード」にもチェック
 (「libavcodec」でも問題無し)
・「プロファイル/プリセット設定」で新規プリセット作成
・新規プリセット名を「mpeg usage」に変更
・「mpeg usage」を選択(画像の赤い矢印の所)して、各種設定
ffdshow preset mpeg usage 2
+出力をNV12(madVR利用時はYV12)
+出力→「インターレース関連情報を出力メディアタイプに設定する」にチェック
+リサイズやインターレース解除等は全てチェックを外す

・「プロファイル / プリセット設定」→「mpeg usage」を選択して、「プリセットの自動読み込みの条件」を開く
ffdshow preset mpeg usage 1
 +「すべての条件が一致した場合(AND)」を選択
 +「FourCCの一致」にチェック、「MPG2」を選択
 +「フレームレートの一致」にチェック、「fps>25」を記述
 +「プリセットの自動読み込みの条件」を閉じる
・「プロファイル/プリセット設定」→「プリセットを自動的に読み込む」をチェック
・「プロファイル/プリセット設定」で「default」が太字になっているのを確認、なってなければ「default」をダブルクリック

これでMPEG2動画でfpsが25よりも大きければ、「mpeg usage」プロファイルを自動的に使用して、ハードウェアインターレース解除出来る形で出力する。
FourCCは動画再生中にffdshowの「情報 / CPU」の項目を見ると判別できる。
「fps>25」は、直接インターレースかどうかを判定出来ないので代用。
MPEG2の再生にはDxVAを使う人が多いだろうが、画質だけを比較するなら、僅かの差でffdshowでデコードする方が画質が良い。
MPEG2はデコーダーの精度の規定が無いので、ハードデコードはコストの問題で精度が犠牲になるのだ。


解像度16~959×16~539用の設定例、プリセット名は「sd usage」
ffdshow preset mpeg usage 7
「インターレース解除」と「リサイズ、アスペクト」を利用し、出力はRGB32。

ffdshow preset sd usage 2
 +「動画の解像度との一致」のみ設定

もし、madVRを利用しているなら、ffdshowのプリセットは「default」と「mpeg usage」と「sd usage」の3つで基本的に足りると思う。
madVRの方は汎用的に使えるリサイズ手法を設定(例えばデフォルトのままに)して、
・「default」は「インターレース関連情報を出力メディアタイプに設定する」にだけチェックしてYV12で出力
ffdshow preset default 1
・「mpeg usage」は上記の通り
・「sd usage」はffdshowで鮮鋭度の高いリサイズ(例えばLanczos10)を掛けて、RGB32で出力
という使い方だ。

ある動画が複数のプリセットの条件に適合する場合は、リストの上の方のプリセットが優先的に使われる。
リストは名前順に並んでるので、順番を変えたい場合はプリセット名の先頭に数字を付ける等すればいい。
例えば、「00 mpeg usage」、「01 sd usage」とかだ。
どのプリセットの条件にも該当しない動画はデフォルトが使われる、リスト上で太字になっている物だ。
現在どのプリセットが選択されているか知りたい場合は、MPC-HCなら、動画再生中に右クリンク→フィルタ→ffdshow Video Decoder→プロパティ。


ファイル名を使って特定の設定を適応させたい時の設定例
ffdshow preset mpeg usage 4
これだとファイル名末尾に「MPG2_30P」と入ってる物に適応される。
私は、プログレッシブ映像なのにインターレースフラグが立っている物に利用している。
プロファイルの設定で「インターレース関連情報を出力メディアタイプに設定する」のチェックを外せば、プログレッシブ映像として出力される。
ハードウェアインターレース解除をパスするので、あいまいさが無くなり画質が上がる事がある。

madVR (ffdshowとのリサイズ画質比較)

madVRはmadshiという方が製作しているビデオレンダラー。
高画質という噂だったが、今までハードウェアのインターレース解除に対応していなかった為、試さなかった。
PC界隈ではここ何年も、Radeonのベクター適応がもっとも優れたインターレース解除方式なのだ。
(参照:Radeon DxVAとffdshowのインターレース解除性能比較Core i5-2500K の動画画質チェック)
それがv0.79で遂に対応して、v0.80で使い物になるようになった。

madVRを利用するメリットは、
1:高画質を考えて作成されている事
2:VGA側の映像処理をパスする事
3:輝度、色差、それぞれ別にリサイズ手法を指定出来る事
4:ハードウェアインターレース解除後に高性能のリサイズ処理を掛けられる事
の4つという所か。

これ以外にGPU処理なのでCPU負荷を減らせるという利点もある。
madVRはVGAの映像処理をパスする為、画質の割りにはGPU負荷も低い(madshi氏のプログラム技術が高いのかもしれない)ので、負荷低減目的でも使える。
が、これは画質とは関係の無い話だ。
リサイズ手法を柔軟に選べるのは画質面での重要なメリットだ。

インストール後色々弄くって常用に至った設定値
madVR Setting 01

madVR Setting 02

madVR Setting 03

madVR Setting 04

madVR Setting 05

madVR Setting 06
デコーダーはffdshowを使うので全て切った。
ffdshowからの出力は、madVRの機能を利用する場合はYV12、それ以外はRGB32にした(この時リサイズはffdshowで行う)。
Radeon VGAでベクター適応を利用する場合はNV12で出力する必要があるはずなのだが、何故かmadVRはYV12でベクター適応が掛かる。
逆にNV12だと不具合が出る動画があった(※1)。
madVRの中でYV12からNV12に変換してるのかもしれない。
上記設定で、インターレース解除も2-3プルダウンもきちんと行われるのを確認した。

スケーリング(リサイズ)処理はデフォルトが、
Chroma(色差):SoftCubic softness:100
Luma(輝度):Lanczos 4taps
madshi氏のスケーリング手法の選択の指針は明快だ。
色差は粗を出さずにしっとりと、輝度で鮮鋭度を稼ぐという考えだ。
Lanczosでもっと鮮鋭度の高い8tapsを使わないのは、リンギングが強すぎるからだろう。
Chromaがかなり鮮鋭度の低い(つまりボケる)手法を使っているのが気になって色々試してみたら、Lumaに比べてChromaの方がリンギングの影響が大きい事が判った。

ffdshowでリサイズ設定を色々変えて試してみた。
輝度Lanczos1/色差Lanczos1
HQV nointerlaced lancos1-1_2 HQV nointerlaced lancos1-1_1

輝度Lanczos10/色差Lanczos1
HQV nointerlaced lancos10-1_2 HQV nointerlaced lancos10-1_1

輝度Lanczos1/色差Lanczos10
HQV nointerlaced lancos1-10_2 HQV nointerlaced lancos1-10_1

明らかに色差の方がリンギングのビロビロが大きく出ている。
色々調べると、リンギングの大きさはLanczos等のtaps数を設定する手法の場合、tap数が増える程、そして映像拡大の倍率が大きい程、大きくなるようだ。
tap数が2倍になれば、リンギングも2倍。
映像拡大率を2倍にすれば、リンギングも2倍。
と単純に考えて間違いでは無さそう。
従って大抵の動画では色差信号は輝度信号の縦横半分の解像度になっているので、色差のリンギングが輝度よりも強く出る事になる。
輝度と色差でリンギングの大きさを揃えようと考えるなら、色差の方がだいたい1/2~1/4程度リンギングの少ない手法を使うのが正解のようだ。
拡大率によってリンギングの大きさが変わるという事は、最適なリサイズ設定が動画解像度と出画解像度によって変わる事を意味する。
ある解像度の動画で最適と感じるように設定したとして、それより解像度が低くなる程リンギングが大きく目立つようになり、解像度が高くなる程リンギングは小さくなるが、それ以前に鮮鋭さを稼ぐ必要が無くなる。
理想的な手段は、DVD解像度(720×480)の最適設定と、地デジ周辺解像度(1280×720~1440×1080)の最適設定を用意する、そしてモニター解像度はBlu-ray解像度=1920×1080にする事だろう。
話しを元に戻して、madVRの設定だが、製作者のmadshi氏が画質に対する理解の深い方と見受けるので、大抵の人はデフォルトをそのまま使えば良いだろう。
適当に弄ってもデフォルトよりも良くするのは難しい。
私は比較画像を幾つか取って、色んな映像を見てみて、ChromaだけSoftcubic80に変更した。
(画像を別タブで開いて切り替えて見ると判り易いです)
madVR 色差Softcubic70 (インターレース映像)
HQV interlaced madVR Lancos4-Softcubic70_1

madVR 色差Softcubic80 (インターレース映像)
HQV interlaced madVR Lancos4-Softcubic80_1

madVR 色差Softcubic100 (インターレース映像)
HQV interlaced madVR Lancos4-Softcubic100_1
LumaをLanczos4のままにしたのは、最近は高解像度の動画がメインになってきたからで、リンギングがそんなに目立たない方が好適になった。

madVRとffdshowのリサイズの質が同じか、比較してみた。
madVR 輝度Lanczos4/色差Lanczos4 (インターレース映像)
HQV interlaced madVR Lancos4-4_2 HQV interlaced madVR Lancos4-4_1

ffdshow 輝度Lanczos4/色差Lanczos4 (プログレッシブ映像)
HQV nointerlaced lancos4-4_2 HQV nointerlaced lancos4-4_1

ffdshow 色差Lanczos4 (プログレッシブ映像、YV12からRGBへの高画質変換OFF)
HQV nointerlaced ffdshow lancos4-4 rgb_nm_1

ffdshow 色差Lanczos4 (インターレース映像をyadif)
HQV interlaced ffdshow lancos4-4_1

madVRとffdshowで縦横比が少し違うが、白黒の画像の質に差は無い。
すなわち輝度信号のリサイズに差は無い。
縦横比はmadVRが720×480 4:3を1440×1080にリサイズしたのに対して、ffdshowは1472×1080にリサイズしたのでffdshowの方が狂ってる。
(ffdshowのバグか、設定が何処かおかしかったのかは今回追求しない)
対して色差の方は明らかに違う、設定を変えてみても同一にはならなかった。
ffdshowの方がリンギングが薄い事から(幅は同じなのに)、リサイズ、アスペクトの項目で設定した手法でリサイズした画像と、YV12からRGBへの高画質変換が影響する手法でリサイズした画像を、ブレンドしているのではないかと想像する。
YV12からRGBへの高画質変換が影響する手法の方は、リンギングの少ない、鮮鋭度の低い手法を採用していると思う。
ともかくffdshowの色差リサイズの質はmadVRよりも劣っている。

ffdshow 色差Bilinear (プログレッシブ映像)
HQV nointerlaced Bilinear_1

ffdshow 色差Bicubic -0.59 (プログレッシブ映像)
HQV nointerlaced Bicubic-059_1

ffdshow 色差Lanczos2 (プログレッシブ映像)
HQV nointerlaced lancos8-2_1

画質優先の場合、madVRが現状もっとも優れた選択だ。

2012/4/20追記
※1
:最新のmadVRではNV12での入力に不具合は無いようです(v0.82.5で確認)。

HIS H657H1G

HIS H657H1G購入(7980円)。
画像上がH657H1G、下がSAPPHIRE HD5450 512M DDR3
P1020594.jpg
最近のビデオカードはヒートシンクが小さい。
その為高温になるのだけど、チップ自体が100度以上に耐えられるし、コンデンサ類も固体コンデンサばかりになってるので、昔程問題ではないらしい。
H657H1Gも高負荷な設定にして、動画再生すると75度まで上がったが、各サイトのレビューを見てもベンチ時の温度がこの位は楽に行くので異常では無いようだ。

H657H1Gは裏側1スロット占有という特殊な形状をしているので注意。
P1020598.jpg
MicroATXだとCPUクーラーと干渉する事があるだろう。
実際にTH67XEに組み込んでみた所、
P1020602.jpg
CPUクーラーはScythe Ninja3、外形寸法120×120mmで、H657H1Gのヒートシンクとフィンとの隙間は無い。
これより少しでも大きいと干渉して付かない。

ドライバー(11.5a)をインストール、GPU-Zでの情報
hd6570 gpu-z

Catalystで動画に関わる設定を見てみると、モスキートノイズ除去とブロックノイズ除去が追加されていた。
放送波のようなビットレートが低い動画で有用だろう。
その他はHD5450と項目に差は無いようだ。
VPL-HW10との接続も、色差出力とRGB888(限定)で輝度レベルが適合する。

UVD3の変更点は4Gamer.netの以下の記事が詳しい。
西川善司連載 / 「AMD Radeon HD 6800」徹底分析。HD 5800から何が変わったのか?

UVD2からは、3D対応の為、2ストリームのデコードが可能になり、MPEG2の再生支援範囲が広がった。
ただ、これらは割と体感しずらい差だ。
非常にロースペックなPCで3D再生しようとすれば差がわかるかもしれないが、そういうバランスの悪い構成は滅多にない。

さて動画再生、PowerDVD8とMPC-HC(EVR出力)でいつものチェックをしてみたが、HD5450と画質に差は無し。
これは当たり前の結果なので次に進む。
次はMPC-HCで「EVRカスタムプレゼンタ」+「Bicubic A=-0.6」+「YV12 Chroma Upsampling」+「最適なレンダラ設定」にして衛星放送の録画を再生してみる。
…フルスクリーン時、GPU Load 83%。
なんじゃこりゃ、HD4650の時は50%にも達しなかったか記憶があるから、MPC-HCのシェーダープログラムが変更されたのだろうな。
「完全な浮動小数点演算をする」を「半浮動小数点演算をする」に変更して、GPU Load 42%ぐらい、常用はこれでいいか。
ちなみに再生画質が優れている順にすると、
「完全な浮動小数点演算をする」>「半浮動小数点演算をする」>「10ビットRGB出力(浮動小数点演算のチェックは外す)」>チェック無し
に、なる。
GPU Loadもこの順。
もっとも、「10ビットRGB出力」以上は見て判る差があるか難しいので、無理に一番良い手法にしなくても良いと思う(記事の最後に比較画像あり)。
これよりも「Bicubic A=-0.6」や「YV12 Chroma Upsampling」の方がずっと画質に対する影響力が高い。

次は消費電力関係、H657H1Gは、DVI/HDMI接続のみだと、GPU:100MHz/MEM:150MHz/VCC:0.9Vまで落ちる。
AMD Overdriveが有効になっていると、GPU:157MHz/MEM:200MHz/VCC:1.0Vまでしか落ちない。
デュアルモニタ接続にすると、GPU:250MHz/MEM:899MHz/VCC:1.0Vになってしまう。
メモリクロックが最大のままで落ちないのはドライバーの問題と思われるので今後の改善に期待する。
なので、今回はシングル接続での消費電力を測った。

システム構成:
【CPU】Core i5-2500K
【M/B】Biostar TH67XE
【RAM】IO DDR3-1333 2GB×2
【VGA】HIS H657H1G
【Sound】オンボード
【LAN】Intel(R) Gigabit CT Desktop Adapter EXPI9301CT
【HDD】Intel SSD 80GB / WD20EADS×2 / WD20EARS(4プラッタ品)×2
【光学】なし
【電源】ENERMAX EPG500AWT
【FAN】KAZE-JYUNI PWM
【OS】Windows 7 Home Premium 32bit
※測定時HDDオフ状態、動画再生はLAN越しの別のPCのHDDのデータ。

アイドル 41.5W
アイドル(デュアルモニタ) 45.0W
FurMark中 89.5W
prime95中 110W
prime95+FurMark中 136W
地デジ録画をPowerDVD8でフルスクリーン再生 約53.4W。
地デジ録画をEVR Cus.(Cyberlink Video/SP Decoder)でフルスクリーン再生 約58.3W。
地デジ録画をEVR(以下全てffdshowデコード)でフルスクリーン再生 約52.6W。
地デジ録画をEVR Cus.でフルスクリーン再生 約58.7W。
地デジ録画をEVR Cus.(半浮動小数点演算)でフルスクリーン再生 約61.7W。
地デジ録画をEVR Cus.(完全な浮動小数点演算)でフルスクリーン再生 約65.8W。

比較用にHD5450時の測定値をHDDオフ状態と見なして校正した物、
アイドル 43.5W
prime95中 112W
prime95+FurMark中 122W
こちらはデュアルモニタ接続なのでご注意(アイドル時、GPU:157MHz/MEM:200MHz/VCC:1.0Vになる)。

仕様では、
・HD5450(DDR3):消費電力6.4~25W
・HD6570(DDR3):消費電力10~44W
となっているが、計測値からするとHD6570は全体的にもう少し低いのではないかと思う。
アイドル時はクロックと電圧がかなり下がるので、HD5450に匹敵する程消費電力が低いし、負荷を掛けた時も仕様程の差は無い。
これでベンチでの性能差は約3.3倍だった。
シェーダー数が4倍でバス幅2倍だから順当な結果だろう、ワットパフォーマンスは高い。

地デジ録画再生時の消費電力を見てみると、DxVAを使うCyberlink Video/SP DecoderとCPUデコードのffdshowで、消費電力にほんのわずかしか差が出なかった。
MPEG2のデコードが今や、CPUに取って大した負荷では無い事が現れている。
Blu-rayクラスのH264デコードではもっと差が出るだろうが、DxVAに常にメリットがある訳ではない事を頭に入れておこう。
用途に合わせて柔軟に使い分けるのが良い。

総評は、やっと動画再生で理想的な設定が出来るようになったので満足(^^)。
HD5450は性能が足りなくてEVR出力に甘んじていた。
でも次の世代のHD75X0が出たら、多分また買い換えると思う。
プロセスルールが40nm→28nmになる事で消費電力が下がって発熱が下がるはずなのでHTPC的に意味があるからだ。


おまけ、MPC-HCのレンダラ設定による画質差:
EVR出力
hd6570 hqv mpc-hc 0 evr
Radeonのスケーリングとクロマアップサンプリングを使用した時の画。
この画像では判別付かないが、スケーリングは以下のBicubic A=-0.6使用時よりもボケが多い。
クロマアップサンプリングも癖がある、赤緑の横縞が白黒の横縞と同じように見えるのが理想的なのだ。
もっとも、ローエンドのビデオカードでも内蔵グラフィックでも、この画になるので限られた性能の中で、優れた物を作っていると感じる。

EVRカスタムプレゼンタ出力で「Bicubic A=-0.6」+「YV12 Chroma Upsampling」+「レンダラ設定→表示→チェック無し」
hd6570 hqv mpc-hc 1 evr cs nc

EVRカスタムプレゼンタ出力で「Bicubic A=-0.6」+「YV12 Chroma Upsampling」+「レンダラ設定→表示→10bitRGB出力のみ」
hd6570 hqv mpc-hc 2 evr cs 10bitrgb

EVRカスタムプレゼンタ出力で「Bicubic A=-0.6」+「YV12 Chroma Upsampling」+「レンダラ設定→表示→半浮動小数点演算をする」
hd6570 hqv mpc-hc 3 evr cs hf

EVRカスタムプレゼンタ出力で「Bicubic A=-0.6」+「YV12 Chroma Upsampling」+「レンダラ設定→表示→完全な浮動小数点演算をする」
hd6570 hqv mpc-hc 4 evr cs float

「レンダラ設定→表示」の設定による画質差はチェック無しとそれ以外では差があるのが判る(ダウンロードしてビュワーで切り替えて見るとか、タブブラウザで別タブで開いて切り替えるとかすると判り易いです)。
しかし10bitRGB出力以下では差はほとんど無い。
高画質狙いの人は必ずこの設定をしよう。
もしVGAの性能が足りなくて、これを設定するとカクカクする場合はすっぱり諦めて、EVR出力にした方が良い。
最新記事
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
FC2カウンター
リンク
検索フォーム
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QR