拙訳
MLAAとは?(What is MLAA?)
http://forums.anandtech.com/showthread.php?t=21265811
MLAAはかなり古い…ので、特許を取られていません。 MLAAはテキストの文字がより良く見えるようにするために作られたように思いますが、最初にそれをもたらしたのがIMBかAPPLEかは思い出せません。
NVIDIAは、彼らが望むなら、似たようなことができたでしょう。これはAAの無い古いゲームでいい感じです。 2010年12月10日午前9時10分 --- Arkadrel(Golden Member)
これはAnandTechのフォーラムのひとつからの引用である(原文ママ)。
この発言にはいくつかの真実が存在する。MLAAはなんと特許取得されていない。
残念ながら、小さなテキストをひどく見えるようにしてしまう。そして、明らかに、NVIDIAは欲していたし、似たようなことをした。
Arkadrel、もしそこにいるなら、あなたの誠実な投稿をバカにすることを謝らせて欲しい。法的な理由のため、この投稿を示すたび詫びなければならない。
MLAA回顧録(This talk: MLAA in retrospect)
- アーティスト回顧展
- 前の酷いやつ
- 後の良いやつ
- 通路
MLAAとは実際は何なのかについて話していこう。
オリジナルの形態的アンチエイリアシングアルゴリズムを二年分の視点から述べようと思う。
もしかしたらこれはとても良い画に見えるかもしれないが…
だが、ズームインしてみると、実際には醜いことが分かると思う。これらすべてのジグザグなエッジを…現実世界で見ることはまったくもってないだろう。
一方で、依然として、目や一般的な顔の楕円、その他の特徴を識別できる。
計画(The Plan)
- 何とかして画像中に輪郭を見つける(そして、現実のオブジェクトと対応するであろうことを望む)
- 輪郭周りに色をブレンド(別名、フィルタリング)する。
…の間の有意な類似性(Meaningful similarities between…)
- ポストプロセッシングのアンチエイリアシング
- 超解像度
- [Fattal 2007Fattal, R. 2007. Image upsampling via imposed edge statistics. ACM Trans. Graph. 26, 3, 95–es. 10.1145/1276377.1276496. https://doi.org/10.1145/1276377.1276496.]
- コンピュータビジョン
- ⇒ 復元された(別名、幻視した)輪郭のエッジは画像の改良/認識のために使われる
輪郭はコンピュータサイエンス分野の至るところで役に立つ。
これらすべての手法では、もっともらしい輪郭はまず幻視され、その後、画像処理で使われる。
…それと、ある重要な区別(…and one important distinction)
品質
↑
- 3Dモデルデータ(解像度で利用可能)
- より良い輪郭を推測するのに使える
- 方向に関して適応的なエッジフィルタ、DEAA、GBAA
- または、ピクセル内部の色以外のスーパーサンプル量
- SRAA
- または、ピクセルあたりのサンプルをひとつだけ使うことを選んでも良い
- 色か深度かその組み合わせのいずれか
↓
単純さ
それと同時に、レンダリングでは、厳密な輪郭は利用可能な3Dデータから実際に計算できる。そのようなアプローチはこのコースの後の方で示されるだろう。
この追加データをすべて無視して、ピクセルあたりひとつの色サンプルで行うならば、可能な限り最も単純で最も自由自在なアルゴリズムを得るだろうが、その代償はクオリティにのしかかる。
動作するであろう(と期待される)理由(Why (we hope) it will work)
スーパーサンプリングアンチエイリアシング:
- 各ピクセルをサンプルする
- 計算した色を平均化する
最高品質は、もちろん、アンチエイリアシングの金字塔であるスーパーサンプリングで達成できるかもしれない。これは、カメラや人間の目での統合処理を模倣するためである。
単純化(Simplifications)
- 2つの別個のサンプルされた色を持つピクセルに対して、積分は面積の計算で近似できる
けれど、いくつかのピクセルでは、サンプルされた色はそこまで違うものではないだろう。つまり、そのようなピクセルをスーパーサンプリングする不必要な処理が行われるだろう。
最も単純で非自明なケースは2つの別個のサンプルされた色を持つひとつのピクセルである。通常は輪郭線がそのピクセルを通るときに起こる。
そのようなピクセルでは、積分が面積の計算で近似できる。
ピクセルあたりひとつの色しか分からないが、なんとかして輪郭線を推定することができる場合、もしかしたらこれでもなんとか機能するかもしれない。
それは以前に行われていた…(It was done before…)
- 非常に単純なコンテンツでは、ピクセルアートスケーリングアルゴリズムが機能するかもしれない
- 元の低解像度のコンピューターゲームをより良いハードウェアで動作できるようにするために80年代に開発された
- ([Kopf and Lischinski 2011Kopf, J. and Lischinski, D. 2011. Depixelizing pixel art. ACM Trans. Graph. 30, 4. 10.1145/2010324.1964994. https://johanneskopf.de/publications/pixelart/.]も参照)
それは以前に行われていた。80年代の初めにはピクセルアートスケーリングアルゴリズムがより高解像度のディスプレイで昔のコンピュータゲームを動かすために開発された。
これらのアルゴリズムは高解像度のピクセルを計算するために現在のピクセルの小さな近傍を用いる。昔のゲームでは可能性のあるパターン数が限定されるので正常に機能する。
最近では、 Kopf and Lischinski [2011Kopf, J. and Lischinski, D. 2011. Depixelizing pixel art. ACM Trans. Graph. 30, 4. 10.1145/2010324.1964994. https://johanneskopf.de/publications/pixelart/.] が高次の曲線を用いる巧みなデピクセル化アルゴリズムをもたらした。
必要なもの(What we need)
(どのピクセルが異なるかの)二値データ → 連続的な輪郭線
これらのアルゴリズムはリアルタイムには高価すぎる。
我々はピクセルアートアルゴリズムに刺激を受けつつも、一般のコンテンツが非ローカルなパターンを考慮することができるようにそれらを拡張する。
どのピクセルが異なるかを説明する二値データのみを用いて輪郭を再生成する。
これは唯一可能なアプローチではないが、その長所は単純さにある。この二値オラクルは色や深度のようないずれの入力を使うことができるが、その出力は与えられた2ピクセルに対して真か偽のいずれかである。
ピクセルが異なるかを決める方法(How to decide if pixels are different)
- 色チャンネルごとのしきい値
- ≠ 人間の視覚
- 輪郭付近で輝度が変化する問題
- 光度 [ITU-R BT.709]
- 偽陰性
- (GOWにおける)非線形しきい値
- 範囲全体で良好な検出
- アーティストの調整が必要
- 深度のみ
- 尺度を選ぶのが難しい
- コーナーで問題に
- 深度+色+オブジェクトID+…
- 恐らく、最良のもの(データが使えれば)
最も単純な方法はチャンネルごと個別に色データのみを使うことである。この手法では、人間の視覚が非線形であるので、しきい値を選択するのが難しい。
小さな値は結果として必要のない輪郭となり、大きな値はすべての差異を見つけられなくなる。
他の可能性として、人間の視覚に合うよう設計されたITUの勧告に基づいて(例えば、10%で)光度を定量化することがある。光度だけを用いると、偽陰性の可能性がある。
God of Warというゲームが行ったように、非線形変換は色範囲全体で良好な検出を提供するために同様に使われるかもしれない。
深度のみが用いられる場合、望ましくない特性を示す可能性もある。しかし、深度、色、オブジェクトIDの組み合わせが最適な選択のように思えるが、それはアプリケーションによる。JiminezのMLAAはこのアプローチを用いる。
ピクセルの不連続性のデータはすべての場合で簡単に追跡可能な輪郭に必ずしも適していない。
あの奴に話を戻すなら, 彼の目は簡単に識別可能である。
それと同時に、彼は歯に問題を抱えている。恐らく不健康なダイエットが原因だ。
一般的な法則は、ピクセル間の差異が大きくなれば輪郭抽出がより信頼できるということである。
これは、最も目立つエイリアシングアーティファクトを排除することができるので、良いことである。
MLAAのルールその1(2つのうち)(MLAA rule #1 (out of 2))
- 輪郭の線分は、水平および垂直の分割線が交差するピクセルのエッジで開始・終了する
輪郭を抽出するためのたった2つのルールだけがある。この画像において、黄色の線は異なるピクセルを分割する。
いくつかのピクセルは水平および垂直の分割線に接する(そのようなピクセルすべてはstripped shadingで示される)。
MLAAにおいて、輪郭はそのようなピクセルのエッジでのみ開始および終了する可能性があるかもしれない。
最も単純な方法はハーフエッジを用いることだろうが、2009年のHPGの論文では、カラーバランスを用いて妨害を見つける手の込んだ方法が提示された。
MLAAのルール #2(MLAA rule #2)
分割線ごとに
- 隣接する直交線にあるすべての始点・終点を調べる
- 最長の線分を選択する
輪郭線の終点を見つければ、それらをつながなければならない。
分割線ごとに、できるだけ最長の輪郭線分を選ぶ。
これはオリジナルのMLAAと、最初に見つけた輪郭が使われるJimenezのMLAAとで異なる点である。
論拠: オブジェクト交差(Rationale: object intersection)
- 鼻の上にメガネが乗っていても、鼻の輪郭線を保存したい
このための論拠は、このEdgarの画像に示されるように、他のオブジェクトと交差するにも関わらず、オブジェクトの輪郭を保存することである。
オーバーブラーの回避(Avoiding over-blurring)
- 水平および垂直の両方の輪郭線が同じピクセルと交差する場合、
- 最長の輪郭線を選択する(これらのピクセルに対して垂直)
- または、いずれかひとつ(両方の長さが1の場合)
水平および垂直の両方の輪郭線が同じピクセルと交差する場合、オーバーブラーを回避するために最長の輪郭線を選択する。
2種類の形状(Two type of shapes)
そして、最後に、輪郭の終点が分割線の反対側にある場合、いわゆるZ型を得る。そうでなければ、2つの線分から構成されるU型が生成される。
結果こうなります(This is what we will get)
すべてをまとめると、左から右に: 元画像、分割線、再構築された輪郭、アンチエイリアスした画像
MLAAを一言で(MLAA in a one sentence)
- 近傍からそれと異なるピクセルすべてを検出する
- 輪郭を近似する
- これらの輪郭の周囲で色をフィルタする
- 手順1と2はイノベーションと差別化を可能にする
- 手順3は(ガンマなしの)RGB空間で大丈夫なように見える
一言で言えば、MLAAは、幻視された輪郭を用いて輪郭の周囲の色をフィルタする。
他の規則でもまったくもって可能である。ほとんどは結果として良い状況では似た輪郭となり、悪い状況ではいずれにせよ十分な情報を持ち合わせていない。
当時(2009年)と現在(2011年)(Then (2009) and now (2011))
| MLAAの落とし穴 | できること |
|---|---|
| 非ローカルでCPUフレンドリーなフィルタは概念実証と見なされる | GPU、PS3、Xbox、CPUに対する効率的な実装、それと同様の代替アルゴリズム |
| Nyquist限界でのアンダーサンプリング | SRAA、方向に関する適応的なエッジフィルタ |
| 変化するライティングが静的なシーンで輪郭変化を誘発する | 不連続性バッファ(JimenezのMLAA) |
| 時間的なアーティファクト | 時空間的アップサンプリング |
| 潜在的な1フレームのレイテンシー | 他のポストプロセッシング効果と並行に行う(God Of War) |
オリジナルのMLAAアプローチは、HPG2009で提示されたときには、概念実証の側面が強かった。
実際、ディファードレンダリングに言及さえせず、Leonardo da VinciやKazimir Malevich、Georges Seuratについて述べた。
今や、オリジナルのMLAAの欠点のほとんどはあれやこれやで対処されている。
IntelのSolutionsグループのAlexandre De Pereyraにより実装された、約6msで実行される新しいCPUバージョンさえもある。
彼は徹底的なジョブ最適化とコードのコメント付けを行った。あなたが理解できるコードを眺めたいと思うなら、このバージョンをダウンロードしよう。
2020年へのタイムライン?(Timeline for 2020?)
- AnandTechでのAA命名ガイド: 主なバリエーションで27エントリ
- 歴史的な視点: Zバッファは他のすべての不可視表面除去アルゴリズムを殺した…
- ハードウェアAAはそうできなかった(まだ?)
AnandTechにあるアンチエイリアシング命名ガイドは27エントリがある。(きょう提示されたいくつかのテクニックはまだ含まれてさえいない)
それは問題と機会の両方を綴る。
ポストプロセッシングのアンチエイリアシングは長らく使われるのか、巧みなハードウェアマルチサンプリングが隆盛するのかは定かではない。
では、質問ですが…(So the question is…)
- Retinaディスプレイ(約300dpi)はすべてのAAを殺すのだろうか?
- (面白くなりそう)
- 最終結果: ポストプロセッシングAAアルゴリズムは以下になればやがて成熟し終わる
- ある種のアーティファクトを緩和するのに解像度が十分に良いとき
- ただし、AAについて忘れてしまうほど大きくはなりすぎない程度に
主な疑問のひとつは、どれくらいのディスプレイ解像度が良いか、ということである。
これは私のオリジナルのスライドで、これらの問題を論じている。そして、それはカンファレンスのDVDに収録されている。しかし、いくつかの理由により、無料のiPadを受け取れなかった。
では、質問ですが…(改訂版)(So the question is… (amended))
- 300dpiでもAAのことを忘れるには十分ではない
- 人々は目の解像度よりも高周波での不連続性に気付くよう進化している(超視力)
- 更に知りたいなら (このコースのウェブサイトを参照)
- John Hableのブログ
- Daved LuebkeのThe Ultimate Display
これが改訂されたスライドである。見ての通り、300dpiでは十分でない。これは魅力的なトピックである。このコースのウェブサイトでこれについてさらに読むことができる。
Footnotes
-
訳注:2025年9月21日現在、リンク先が存在しません。 ↩