以前に

高画質動画を再生する場合は、image enhancementsやupscaling refinementの処理、

低画質動画を再生する場合は、NGUなどのシェーダーやノイズ除去の処理

時間をかけた方が良いと記述しました。

 

 

では、シェーダーの特性を生かした、高画質・低画質の再生の分け方と

シェーダーの選定を考えてみましょう。

 

 

 

 

 

クロマアップスケールは、サイズ拡大とは関係なし

 

Chroma upscalingは、YCbCr4:2:0などのデータをYCbCR4:4:4にアップスケールする機能です。

よって、リサイズする・しないに関係なく、アップスケールします。

 

なお、YCbCR4:4:4の映像データは、クロマアップスケールしません。

 

Chroma upscaling

●YCbCr4:2:0 → YCbCR4:4:4

●動画のリサイズに関係がない

 

 

 

 

モニターのサイズ

 

当然ですが、モニターのドット数でアップスケールの倍率が変わります。

モニターのドット数が多くなるほど、アップスケール倍率が上がります。

1280*720mの映像は、FHDモニターだと高画質な映像かもしれませんが、

4Kモニターだと3倍アップスケールになり、高画質映像かどうかは、微妙な判断になります。

 

また、モニターサイズでも変わります。

4Kモニターでも27インチと32インチでは、ドットサイズ・ピッチが違います。

単純に、映像が小さいほど、ドットピッチが短く、解像度が高く感じられます。

32インチより27インチモニターの方がキレイに見えます。

様々なmadVRの資料を参照する場合は、

自分のモニターと よく見る映像の大きさから

よく使うアップスケール倍率を中心に、どのシェーダーが最適かを考えます。

 

同様の現象として、イメージアップスケールしない場合は キレイな映像でも、

アップスケールすると 解像度が甘く感じられるのは、ドットピッチが長くなるからです。

madVRのimage upscalingは、拡大したドットピッチを拡大する前と同じようにするためのものです。

 

 

●画面サイズは 小さいほど解像度が良いように見える。

  →ダウンスケールを含めると解像度が上がったように見える(かも?)

 

● リサイズの拡大率が上がれば上がる程、映像の解像度は甘くなる。

 

 

 

 

 

 

クロマアップスケール・イメージアップスケールの基本は、NGU

 

madVRと言えば、NGU(New Generation Upscaling)。

まずは、NGUを選択します。

 

処理時間が間に合わないようであれば、super-xbrなどに変更していきます。

NGUは、Sharp, Standard, Soft, Anti-Aliasに分かれますが、

2倍までのアップスケールは、Sharp, またはStandard

2倍超は、Standard, またはSoftが良いでしょう。

シャープすぎると感じたならば、Soft, またはAnti-Alias を選択します。

 

very high - low までのレベル調整は、処理時間で決める方が無難です。

つまり、NGU Standard very high が好みの画質になったが、

処理時間が間に合わない場合は、high以下に下げていきます。

 

アップスケールしない解像度の映像(等倍)は、クロマアップスケールだけになります。

よりシャープな映像にしたい場合は、image enhancements を設定します。

 

 

●まずは、NGUを選択

● image upscaling

   2倍以下のアップスケールは、NGU Sharp  or  Standard

   2倍超のアップスケールは、 NGU Standard  or  Soft

 

 

 

 

 

 

doublingは使用した方が良い

 

イメージアップスケールのdoubling(2倍拡大)は、できるだけ使用した方が良いでしょう。

つまり、NGU系かsuper-xbrのいずれかを使用した方が良いでしょう。

doublingは、Jincなどのシェーダーよりもシャープで副産ノイズが出にくい特徴があります。

 

 

 

 

 

NGUのイメージアップスケールは、lumaとchromaで分けられる

NGUのイメージアップスケールは、RGBデータをYCbCr4:4:4に再変換され、

luma(Y)とchroma(CbCr)をそれぞれ独立して処理できます。

 

人間の目は、lumaに敏感です。 よって、luma upscalingがより重要になります。

 

luma upscalingをNGU系 very high にし、chromaをnormal(Bicubic60 + AR)にする方が 処理時間との兼ね合いからバランスが良いとされています。

 

 

 

 

 

3倍以上のアップスケール、3回シェーダを使用するアップスケールは、upscaling refinementの使用を考える

 

大規模アップスケールでは、ドットピッチが長くなるため、解像度が甘く感じられる場合が多くなります。

その場合、upscaling refinementを使用して、シャープな映像にすることも検討しましょう。

 

 

 

 

 

 

 

以下は、doubling(2倍アップスケール) / quadrupling(4倍アップスケール)について考えてみます。

 

 

 

2倍未満のアップスケールを考えてみる

 

例えば1.5倍のアップスケールを考えてみましょう。

1.5倍アップスケールは、以下の2つの方法があります。

image upscaling のみ (単純に1.5倍)

doubling + image downscaling (2倍 * 0.75倍)

 

処理時間は image upscaling のみの方が、圧倒的に短くなります。

一方、(個人的には) doubling + image downscalingの方がキレイに見えます。

 

 

doubling + image downscalingにするには、

activate doubling / quadrupling... を

 ...only if any upscaling is needed / only if scaling factor is 1.2x (or bigger) などに設定します。

 

 

 

例として、以下のような設定をすると

 

 

1.5倍アップスケールでは、このようになります。

 

 

 

 

 

 

2倍超~4倍未満のアップスケールを考えてみる

 

3倍アップスケールを考えてみます。

3倍アップスケールは、以下の2つの方法があります。

doubling + image upscaling (2倍 * 1.5倍)

quadrupling + image downscaling (4倍 * 0.75倍)

 

 

4倍アップスケールは、super-xbrは doubling を2回、

NGU(Anti-Aliasを除く)は direct quadruple(直接4倍) か doubling を2回 のいずれか

になります。

(upscaling refinementのSuperRes, ・・・~2x upscaling stepを設定すると、

 doubling 2回になります。)

 

 

処理時間に有利なのは、

doubling + image upscaling >direct quadrupling + image downscaling double * 2 + image downscaling

になります。

 

 

一方、2倍を超える、3回のリスケールは解像度が甘く感じる可能性があります。

double * 2 + image downscalingの場合は、upscaling refinementの設定を検討した方が良いかもしれません。

 

 

以下のような設定をすると

3倍アップスケールでは、このようになります。

 

 

---------------------

以下のような設定をすると

3倍アップスケールでは、このようになります。

 

 

 

 

 

 

 

4倍以上のアップスケールを考えてみる

 

4倍以上のアップスケールでは、必ず2回はdoublingを行います。

 

NGU(Anti-Aliasを除く)は、直接4倍が可能で、doubling * 2 より処理時間が短くできますが、

直接4倍は、upscaling refinementのSuperResが使用できなかったりして、

シャープな映像が得られにくくなります。

 

 

2~4倍アップスケールの 4倍アップスケール+ダウンスケールでは、

chromaは、アップスケールが1回だけでしたが、

4倍以上は、chroma側で 4倍、または2回アップスケールが行われます。

その分、処理時間がかかります。

 

 

以下のような設定をすると

5倍アップスケールでは、このようになります。

 

---------------------

upscaling refinementで、以下のような設定をすると

5倍アップスケールでは、このようになります。

 

 

 

 

 

 

 

upscaling refinementは、どれを使用するのか

 

NGU Sharpは、高解像度なソースのみに限定すると、

NGU Sharp用オプションのsoften edges / add grainはほぼ使用しません。

 

 

2回doubling/4倍アップスケールを行う場合は、

副産ノイズの少ないLumaSharpenの使用は有効です。

 

 

一方、副産ノイズの多いenhance detailは設定しない・弱めに設定する方が良いでしょう。

 

 

アニメなど線(ライン)がハッキリとしたソースは、線を太くしにくい thin edgesactivate anti-bloating filterが有効です。

 

 

SuperResは、シャープな映像が得られますが、副産ノイズも多くなります。

オーバー設定は避けましょう。

 

 

 

 

 

 

 

 

総合すると

 

プロファイルによる場合分けは、以下のようにするのがベター?

 

・ダウンスケールのみ(モニターより映像の方が大きい)

 FHDモニターの場合、4K映像を再生する場合が、これに該当。

 image downscaling は、SSIM 2Dが良い。

 chroma upscalingは、image downscalingの設定が決まったら、処理時間内で収まるシェーダに設定。

 

 

・アップスケールしない(映像とモニターサイズが同じ)

 クロマアップスケール(chroma upscaling)のみ機能する。

 クロマアップスケールは、NGU sharpが最有力。

 元の映像をよりシャープにしたい場合は、image enhancementsの設定をする。

 

 

・2倍未満のアップスケール

 image upscalingは、NGU系 + SSIM 1D(downscaling) で考えてみる。

 chroma側は、normalなどに設定して、処理時間を短くする。

 処理時間が間に合わない場合は、徐々に設定を落としていき、

 最後は、only if scaling factor is 2.0x (or bigger) に設定して、Image upscaling(Jincなど)のみが動作するようにする。

 chroma upscalingは、その後に設定する。

 

 

・2倍アップスケール

 image upscalingは、NGU系を検討する。

 処理時間が間に合わない場合、chroma側は、normalなどに設定して、処理時間を短くする。

 chroma upscalingは、その後に設定する。

 

 

・2倍超~4倍未満アップスケール

 image upscalingは、NGU Standard以下を検討する。

 NGU Standard doubling * 2回 + SSIM 1D(downscaling)  + upscaling refinementで考えてみる。

 chroma側は、normalなどに設定して、処理時間を短くする。

 処理が間に合わない場合は、直接4倍→upscaling refinementを外す→downscalingを落とす

 など、徐々に設定を落としてみる。

 最後は、only if scaling factor is 2.0x (or bigger) に設定して、Image upscaling(Jincなど)が動作するようにする。

 chroma upscalingは、その後に設定する。

 

 

・4倍アップスケール

 image upscalingは、NGU Standard以下を検討する。

 処理時間が間に合わない場合、chroma側は、normalなどに設定して、処理時間を短くする

 chroma upscalingは、その後に設定する。

 

 

・4倍超アップスケール

 image upscalingは、NGU Standard以下を検討する。

 NGU Standard doubling * 2回 + Jinc AR(upscaling)  + upscaling refinementで考えてみる。

 chroma側は、normalなどに設定して、処理時間を短くする。

 処理が間に合わない場合は、直接4倍→upscaling refinementを外す→upscalingを落とす

 など、徐々に設定を落としてみる。

 

 

 

 

ソースとモニターの横解像度でプロファイルを分けてみましょう

 

FHDモニター(1920)の場合分けは、

ソース

 1920超        ・・・ダウンスケールのみ

 1920         ・・・等倍

 960超~1920未満 ・・・2倍未満のアップスケール

 960          ・・・2倍アップスケール

 480超~960未満  ・・・2倍超~4倍未満アップスケール

 480          ・・・4倍アップスケール

 480未満       ・・・4倍超アップスケール

 

 

4Kモニター(3840)の場合分けは、

ソース

 3840超        ・・・ダウンスケールのみ

 3840         ・・・等倍

 1920超~3840未満 ・・・2倍未満のアップスケール

 1920          ・・・2倍アップスケール

 960超~1920未満  ・・・2倍超~4倍未満アップスケール

 960          ・・・4倍アップスケール

 960未満       ・・・4倍超アップスケール

 

 

 

プロファイルルールの例

if (srcWidth > 3840) "8K"
elseif (srcWidth = 3840) "4K"
elseif (srcWidth < 3840) and (srcWidth > 1920) "WQHD"
elseif (srcWidth = 1920) "FHD"
elseif (srcWidth < 1920) and (srcWidth > 960) "HD"
elseif (srcWidth = 960) "XGA"
elseif (srcWidth < 960) "SD"

 

 

 

設定例(画質優先)

 

全プロファイル

chroma upscaling

 NGU Sharp - very high

 

 

 

 

 

8K:ダウンスケール

image downscaling のみ。他は適当に設定

 SSIM 2D  (scale in linear light / AR- relaxed / AB )

 

 

 

4K:等倍

 image upscaling / image downscaling 関係なし

 

 

 

WQHD:2倍未満アップスケール

image upscaling

 NGU Sharp

  luma doubling:   very high

  chroma:       normal

  active doubling :  ...only if any upscaling is needed

  downscaling algo:  SSIM 1D 100 AR Linear Light

 

 

 

FHD:2倍アップスケール

image unscaling

 NGU Sharp

  luma doubling:   very high

  chroma:       normal

 

 

 

HD:4倍未満アップスケール

image upscaling

 NGU Standard

  luma doubling:   very high

  luma quadrupling:  double again -> very high

  chroma:       normal

  active doubling :  ...only if any upscaling is needed

  active quadrupling :...only if any upscaling is needed

  downscaling algo:  SSIM 1D 100 AR Linear Light

 

upscaling refinement

 sharpen edges

 LumaSharpen

 AdaptiveSharpen  -  linear light

 activate anti-bloating filter

 activate anti-ringing filter

 refine the image after every ~2x upscaling step

 

 

 

XGA:4倍アップスケール

image upscaling

 NGU Standard

  luma doubling:   very high

  luma quadrupling:  double again -> very high

  chroma:       normal

 

upscaling refinement

 sharpen edges

 thin edges

 LumaSharpen

 AdaptiveSharpen  -  linear light

 activate anti-bloating filter

 activate anti-ringing filter

 SuperRes  -  linear light / AR

 refine the image after every ~2x upscaling step

 

 

 

SD:4倍超アップスケール

image upscaling

 NGU Standard

  luma doubling:   very high

  luma quadrupling:  double again -> very high

  chroma:       normal

  upscaling algo:  Jinc AR

 

upscaling refinement

 sharpen edges

 crispen edges

 thin edges

 enhance detail

 LumaSharpen

 AdaptiveSharpen  -  linear light

 activate anti-bloating filter

 activate anti-ringing filter

 SuperRes  -  linear light / AR

 refine the image after every ~2x upscaling step

 

 

 

 

 

 

参照:

madVRの設定 - scaling algorithms編 (v0.92.17)

 

madVRの設定 (v0.92.17)