ピクセルアートのスケーリングアルゴリズム

テレビのスプライト(中央)を、単純な最近傍スケーリング(左)と 2xSaI 補間アルゴリズム(右)を使用してサイズ変更した例
一般的なピクセルアートのスケーリングアルゴリズムの比較。違いを確認するには、フル解像度でご覧ください。

ピクセルアートのスケーリングアルゴリズムは、手描きの2Dピクセルアートグラフィックの外観を向上させるためのグラフィカルフィルタです。これらのアルゴリズムは、自動画像補正の一種です。ピクセルアートのスケーリングアルゴリズムは、画像の外観を維持することを目的とした 一般的な画像再スケーリング手法とは大きく異なる手法を採用しています。

ピクセルアートグラフィックは一般的に非常に低い解像度で使用されるため、個々のピクセルに細心の注意を払って色付けされます。その結果、複雑な形状を定義するために、多くの様式化された視覚的手がかりに依存するグラフィックが作成されます。このようなグラフィックの再スケーリングを処理するために、いくつかの特殊なアルゴリズム[ 1 ]が開発されています。

これらの特殊なアルゴリズムはピクセルアートのグラフィックの外観を向上させることができますが、その過程で変化が生じます。特に元の外観を忠実に再現することが目的の場合、こうした変化は望ましくない場合があります。

この技術の典型的な応用例は、アーケードやコンソールエミュレータにおける第4世代以前のビデオゲームの外観を向上させることであるため、多くのピクセルアートスケーリングアルゴリズムは、十分に小さい入力画像を60フレーム/秒でリアルタイムに実行できるように設計されています。そのため、この種のリアルタイム処理に使用できるプログラミング手法の種類には制約が課せられます。多くのアルゴリズムは特定のスケール係数でのみ動作します。最も一般的なスケール係数は2倍ですが、3倍、4倍、5倍、6倍も存在しますが、あまり使用されていません。

アルゴリズム

SAA5050「対角スムージング」

Mullard SAA5050テレテキスト文字生成チップ (1980) は、原始的なピクセルスケーリングアルゴリズムを使用して、内部ROMの低解像度表現から画面上に高解像度の文字を生成しました。内部的には、各文字の形状は5 × 9ピクセルのグリッドで定義され、対角線を平滑化することで補間され、特徴的な角張った形状で、上部と左側に 2 ピクセルの空白がある10 × 18ピクセルの文字が生成されました。このアルゴリズムはモノクロのソースデータでのみ機能し、ソースピクセルが「オン」か「オフ」かによって論理的に真または偽であると想定します。グリッドパターンの外側のピクセルはオフであると想定されます。[ 2 ] [ 3 ] [ 4 ]

アルゴリズムは次のように動作します。

ABC --\ 1 2 守備 --/ 3 4 1 = B | (A & E & !B & !D) 2 = B | (C & E & !B & !F) 3 = E | (!A & !E & B & D) 4 = E | (!C & !E & B & F) 

このアルゴリズムには、以下のEagleアルゴリズムと同様に欠陥があることにご注意ください。4ピクセルのひし形パターンが現れた場合、そのパターンは拡張によって消去されてしまいます。SAA5050の内部文字ROMは、このパターンの使用を慎重に回避しています。

退化したケース:

 * * * * 

次のように変わります。

 ** **** ****** ****** **** ** 

EPX/スケール2×/AdvMAME2×

エリック・ピクセル拡張(EPX)は、ルーカスアーツのエリック・ジョンストンが1992年頃に 開発したアルゴリズムである。ジョンストンは、 SCUMMエンジンのゲームをIBM PC(320×200×256色)から、その2倍程度の解像度で動作していた初期のカラーMacintoshコンピュータに移植する際に開発した。[ 5 ] このアルゴリズムは次のように動作し、Pの周囲に基づいてPを4つの新しいピクセルに拡張する。

EPX アルゴリズムはピクセル P を 4 つの新しいピクセルに拡張します。

1=P; 2=P; 3=P; 4=P; C==A => 1=Aの場合 A==B => 2=Bの場合 D==C => 3=Cの場合 B==D => 4=Dの場合 A、B、C、Dのうち3つ以上が同一である場合: 1=2=3=4=P 

この同じアルゴリズムの後の実装(2001年頃に開発されたAdvMAME2×やScale2×など)は、若干効率的ですが、機能的には同じです。

1=P; 2=P; 3=P; 4=P; C==A かつ C!=D かつ A!=B の場合 => 1=A A==B かつ A!=C かつ B!=D の場合 => 2=B D==C かつ D!=B かつ C!=A の場合 => 3=C B==D かつ B!=A かつ D!=C の場合 => 4=D 

AdvMAME2× は、dosbox.confオプションを介してDOSBoxで利用できます。 scaler=advmame2x

AdvMAME4×/Scale4× アルゴリズムは、EPX を 2 回適用して 4 倍の解像度を得るだけです。

Scale3×/AdvMAME3× と ScaleFX

EPXはビットマップフォントの拡大縮小に使用できます。上から下へ:a) 元のフォントサイズ、b) 近傍2倍スケーリング、c) EPX 2倍スケーリング、d) 近傍3倍スケーリング、e) EPX 3倍スケーリング。

AdvMAME3×/Scale3×アルゴリズム(DOSBoxではscaler=advmame3xdosbox.confオプションで利用可能)は、EPXを3×スケールに一般化したものと考えることができます。コーナーピクセルの計算はEPXと同様に行われます。

AdvMAME3x/Scale3xはピクセルEを9つの新しいピクセルに拡大します。

1=E; 2=E; 3=E; 4=E; 5=E; 6=E; 7=E; 8=E; 9=E; D==B かつ D!=H かつ B!=F の場合 => 1=D (D==B かつ D!=H かつ B!=F かつ E!=C) または (B==F かつ B!=D かつ F!=H かつ E!=A) の場合 => 2=B B==F かつ B!=D かつ F!=H の場合 => 3=F (H==D かつ H!=F かつ D!=B かつ E!=A) または (D==B かつ D!=H かつ B!=F かつ E!=G) の場合 => 4=D 5=E (B==F かつ B!=D かつ F!=H かつ E!=I) または (F==H かつ F!=B かつ H!=D かつ E!=C) の場合 => 6=F H==D かつ H!=F かつ D!=B の場合 => 7=D もし (F==H かつ F!=B かつ H!=D かつ E!=G) または (H==D かつ H!=F かつ D!=B かつ E!=I) ならば => 8=H F==H かつ F!=B かつ H!=D の場合 => 9=F 

Sp00kyFoxによって開発されたScale3×の改良版ScaleFXと、Reverse-AAと組み合わせたScaleFX-Hybridというバージョンも存在する。[ 6 ] [ 7 ] [ 8 ]

イーグル

Eagleの動作は次のようになります。入力ピクセルごとに4つの出力ピクセルを生成します。まず、4つの出力ピクセルすべてを、現在スケーリングしているピクセルの色(最近傍色)に設定します。次に、上、左、左斜め上の3つのピクセルを確認します。3つすべてが同じ色であれば、出力ピクセルの左上のピクセルを、最近傍色よりも優先してその色に設定します。4つのピクセルすべてに対して同様に処理し、次のピクセルに進みます。[ 9 ]

3×3ピクセルの入力行列(中心のピクセルがスケーリングされるピクセル)と2×2ピクセルの出力行列(つまりスケーリングされたピクセル) を想定する。

最初: |その後 . . . --\ CC |STU --\ 1 2 . C . --/ CC |VCW --/ 3 4 . . . |XYZ | V==S==T の場合 => 1=S | T==U==W の場合 => 2=U | V==X==Y => 3=X の場合 | W==Z==Y => 4=Zの場合 

したがって、白い背景に黒いピクセルが1つだけある場合、そのピクセルは消えてしまいます。これはEagleアルゴリズムのバグですが、EPX、2xSaI、HQ2xなどの他のアルゴリズムによって解決されています。

2×SaI

2×SaI(2×スケールおよび補間エンジンの略)は、Eagleに着想を得ました。Kreedとしても知られるDerek Liauw Kie Faによって設計され、主にコンソールおよびコンピュータエミュレータでの使用を目的としており、この分野ではかなりの人気を博しています。ZSNESやVisualBoyAdvanceなど、多くの人気エミュレータは、このスケーリングアルゴリズムを機能として提供しています。このスケーリングアルゴリズムには、わずかに異なる複数のバージョンがあり、これらはSuper 2×SaISuper Eagleと呼ばれることがよくあります。

Super2xSaIが単一のピクセルを拡大縮小するために使用する周囲のピクセルのマトリックス

2xSaI ファミリは、以下の A でマークされたピクセルがスケーリングされる 4 × 4ピクセル マトリックスで動作します。

IEFJ GABK --\ WX HCDL --/ YZ MNOP 

16ビットピクセルの場合、16ビットピクセル形式が565か55かに応じて変化するピクセルマスクを使用します。定数colorMasklowPixelMaskqColorMaskqLowPixelMaskredBlueMaskgreenMask16ビットマスクです。下位8ビットはどちらのピクセル形式でも同じです。

2 つの補間関数について説明します。

INTERPOLATE(uint32 A、UINT32 B)。 -- AとBの直線中点 (A == B) の場合は A を返します。 戻る ( ((A & カラーマスク) >> 1) + ((B & カラーマスク) >> 1) + (A & B & lowPixelMask) ); Q_INTERPOLATE(uint32 A, uint32 B, uint32 C, uint32 D) -- 双線形補間; A、B、C、Dの平均 x = ((A & qColorMask) >> 2) + ((B & qColorMask) >> 2) + ((C & qColorMask) >> 2) + ((D & qColorMask) >> 2); y = (A & qLowPixelMask) + (B & qLowPixelMask) + (C & qLowPixelMask) + (D & qLowPixelMask); y = (y >> 2) & qLowPixelMask; x + y を返します。 

このアルゴリズムは、A、B、C、D について、 と が一致する対角線上の一致、A==DあるいはB!=Cその逆、あるいは両方が対角線上にあるか、あるいは対角線上の一致がないかをチェックします。これらの条件に基づいて、アルゴリズムは出力ピクセルごとに、A、B、C、D のいずれかを使用するか、あるいはこれら 4 つのみの補間を使用するかを決定します。2xSaI 任意スケーラーは、任意の画像を任意の解像度に拡大でき、双線形フィルタリングを使用してピクセルを補間します。

Kreedは[ 10 ]ソースコードをGNU一般公衆利用許諾書(GPL)の下で公開しているため、同ライセンスの下で公開されたプロジェクトで利用したい人は誰でも自由に利用できます。GPL以外のプロジェクトでKreedのソースコードを利用したい開発者は、Kreedの既存コードを一切使用せずにアルゴリズムを書き直す必要があります。

DosBoxではオプション経由で利用できますscaler=2xsai

本社家族

Maxim Stepinのhq2x、hq3x、hq4xは、それぞれ2:1、3:1、4:1のスケール係数に対応しています。各関数は、各ピクセルの色値をその8つの隣接ピクセルの色値と比較し、隣接ピクセルを近いか遠いかでマークし、事前に生成されたルックアップテーブルを使用して、対応する4、9、または16個の出力ピクセルそれぞれについて、入力ピクセルの値の適切な比率を計算します。hq3xファミリは、傾きが±0.5、±1、または±2で、入力時にアンチエイリアス処理されていない対角線を完全に平滑化します。それ以外の傾きの対角線は、出力時に2つの傾きが交互に現れます。また、非常に急な曲線も平滑化します。2xSaIとは異なり、出力にアンチエイリアス処理が施されます。[ 11 ] [ 8 ]

hq n xは当初、スーパーファミコンエミュレータZSNES用に開発されました。bsnesの作者は、hq2xのメモリ効率の高い実装をパブリックドメインで公開しました。[ 12 ] xBRの初期バージョンに匹敵する品質を持つシェーダーへの移植版が利用可能です。 [ 13 ]移植以前は、「scalehq」というシェーダーがhqxと混同されることがよくありました。[ 14 ]

xBRファミリー

このファミリーには、 xBRxBRZxBR-HybridSuper xBRxBR+3DSuper xBR+3D の6 つのフィルターがあります。

Hyllian によって作成された xBR ("scale by rules") は、HQx (パターン認識に基づく) とほぼ同じように動作し、上記のパターンが与えられた場合、HQx と同じ結果を生成します。[ 15 ]しかし、2 段階の補間ルールを使用することで HQx よりも進んでおり、アンチエイリアスされた直線や曲線などのより複雑なパターンをより適切に処理します。 スケーリングされた背景テクスチャは、HQx (実際には ScaleHQ であることが多い) のようにぼやけるのではなく、元の画像の鮮明な特徴を維持します。 最新の xBR バージョンはマルチパスであり、小さな詳細をより適切に保持できます。 また、xBR と Reverse-AA シェーダーを組み合わせた xBR-Hybrid というバージョンもあります。[ 16 ] xBR+3D は、2D 要素のみをフィルターする 3D マスクを備えたバージョンです。

ZenjuによるxBRZはxBRの改良版である。これはCPUベースのフィルタとしてC++でゼロから実装されている。[ 17 ] xBRのパターン認識と補間と同じ基本的な考え方を採用しているが、数ピクセルほどの微細な画像の詳細を保持するように設計された異なるルールセットを採用している。そのため、顔、特に目の詳細を拡大縮小する場合に有効である。xBRZはマルチコアCPU64ビットアーキテクチャに最適化されており、シングルCPUコアで実行した場合でもHQxよりも40~60%優れたパフォーマンスを示す。アルファチャンネルによる画像の拡大縮小と、2倍から6倍までの整数倍の拡大縮小を サポートしている。

Super xBR [ 18 ] [ 19 ]は、2015年にHylianによって開発されたアルゴリズムです。既知の線形フィルタとxBRエッジ検出ルールを非線形的に組み合わせて使用​​します。2パスで動作し、画像を2倍(または再適用することで2の倍数)に拡大縮小できます。また、アンチリンギングフィルタも備えています。Super xBR+3Dは、2D要素のみをフィルタリングする3Dマスクを備えたバージョンです。C/C++で書き直されたSuper xBRバージョンもあります。[ 20 ] [ 8 ]

ロットスプライト

左: オリジナルのピクセルアート画像中央: 最近傍回転アルゴリズムを使用して回転した画像右: RotSprite アルゴリズムを使用して回転した画像

RotSpriteは、Xenowhirlによって開発されたスプライトのスケーリングおよび回転アルゴリズムです。最近傍回転アルゴリズムに比べてアーティファクトがはるかに少なく、EPXと同様に、画像に新しい色が追加されることはありません(ほとんどの補間システムとは異なります)。[ 21 ]

このアルゴリズムはまず、類似ピクセル(同一ピクセルではなく)を一致として扱う改良Scale2×アルゴリズムを用いて、画像を元のサイズの8倍に拡大する。次に、境界ピクセルではないサンプル点を優先することで、回転オフセットを計算する(オプション)。次に、近傍拡大・回転アルゴリズムを用いて回転画像を作成する。このアルゴリズムは、画像を元のサイズに縮小すると同時に回転させる。最後に、元画像の対応するピクセルが異なり、かつ、移動先ピクセルに3つの同一の近傍ピクセルがある場合、見落とされていた単一ピクセルの詳細を(オプションで)復元する。[ 22 ]

高速ロットスプライト

Fast RotSpriteは、Oleg Mekekechko氏がPixel Studioアプリ向けに開発した、ピクセルアート用の高速回転アルゴリズムです。RotSpriteをベースにしていますが、若干の画質低下はあるものの、より優れたパフォーマンスを実現しています。大きな画像をリアルタイムで処理できます。Fast RotSpriteは、8倍のアップスケールではなく、3倍のアップスケールを1回だけ使用します。その後、座標を丸めてすべてのピクセルを回転させます。最後に、新しい色を追加することなく3倍のダウンスケールを実行します。各ステップのすべての処理は独立しているため、並列処理が可能で、パフォーマンスを大幅に向上させます。

コップ・リシンスキー

Kopf-Lischinskiアルゴリズムは、2011年の論文「Depixelizing Pixel Art」で説明されている、ピクセルアートから解像度に依存しないベクターグラフィックを抽出する新しい方法です。 [ 23 ] Python実装も利用可能です。[ 24 ]

このアルゴリズムはGPUに移植され、リアルタイムレンダリング用に最適化されています。このバリアントのソースコードは入手可能です。[ 25 ]

エッジ方向補間(EDI)

エッジ指向補間(EDI)は、統計的サンプリングを使用して画像を拡大する際の品質を保証するアップスケーリング手法を指します。[ 26 ] [ 27 ]以前にも、エッジを検出して線形補間のブレンド重みを生成したり、近傍の状態に応じてピクセルを分類して、その分類に基づいて異なる等方性補間スキームを使用したりする方法がいくつかありました。各補間アプローチは、近隣ピクセルの加重平均に要約されます。目的は、最適な重みを見つけることです。双線形補間では、すべての重みが均等に設定されます。双三次補間sinc補間などの高次補間法では、隣接するピクセルだけでなく、より多くの近傍ピクセルが考慮されます。

ネディ

NEDI(New Edge-Directed Interpolation)は、原画像における局所的な共分散を計算し、それを用いて高解像度での補間を適応させる。このフィルタファミリーのプロトタイプフィルタである。[ 28 ]

EDIアップサイザー

EDIUpsizer [ 29 ]は、NEDI(新しいエッジ指向補間)を用いて、画像を水平方向と垂直方向の両方で2倍にリサイズするリサンプリングフィルタです。[ 28 ] EDIUpsizerは、NEDIが細かい領域で生成する多くのアーティファクトを防ぐために、基本的なNEDIにいくつかの変更を加えています。これには、条件数テスト、適応型ウィンドウサイズ、[ 30 ]およびキャッピング制約が含まれます。NEDIに対するすべての変更と制約はオプション(オン/オフの切り替えが可能)であり、ユーザーが設定できます。このフィルタはやや遅いです。

高速EDIアップサイザー

FastEDIUpsizerは、EDIUpsizerの軽量版で、速度が若干向上しています。ウィンドウサイズは8×8の固定値を使用し、輝度平面上でのみNEDIを実行し、フォールバック補間法としてバイキュービック法またはバイリニア法のいずれかのみを使用します。

イーディ3

もう一つのエッジ指向補間フィルタ。スキャンライン上のすべてのピクセルに関係するコスト関数を最小化することで動作します。処理速度は遅いです。

EEDI2

EEDI2は、既存の画像を2⋅y(n)にコピーし、欠落しているフィールドを補間することで、画像を垂直方向に2倍にリサイズします。これは、デインターレースのためのエッジ方向の補間を目的としています(つまり、通常の画像のリサイズには適していませんが、同様に可能です)。EEDI2はTDeintとTIVTCの両方で使用できます。使用方法の詳細については、ディスカッションリンクを参照してください。[ 31 ]

スーパーレゾリューション

SuperRes [ 32 ]シェーダーは、NEDI(またはその他のスケーリングアルゴリズム)と組み合わせて使用​​できる、異なるスケーリング手法を採用しています。この手法については、2014年に開発者のShiandow氏がDoom9フォーラムに投稿した記事で詳しく説明されています。[ 33 ]この手法は、NEDIのみを使用するよりも優れた結果をもたらすことが多く、NNEDI3に匹敵します。これらは現在、MPDNレンダリングスクリプトとしても利用可能です。

ネディ

NNEDIは、フィールド内デインターレーサーの一種であり、画像を2の累乗倍に拡大するのにも使用できます。デインターレーサーとして使用する場合、フレームを取り込み、1つのフィールドを破棄し、保持されたフィールドの情報のみを使用して、不足しているピクセルを補間します。NNEDIには、現在までに3つの主要な世代があります。

オリジナル版のNNEDIは、YUY2YV12の入力に対応しています。[ 34 ] NNEDI2はRGB24のサポートとアップスケーリングのための特別な関数を追加しましたnnedi2_rpow2。NNEDI3はNNEDI2を予測ニューラルネットワークで拡張しました。ネットワークのサイズと検査する近傍範囲は、速度と品質のトレードオフを考慮して調整可能です。[ 35 ]

これは画質と速度の両立を左右するオプションです。特定のリサイズ係数では、ニューロン数によるパフォーマンスの違いは通常小さくなりますが、画像サイズを4倍にすると、ニューロン数によるパフォーマンスの違いは大きくなります。解像度を2倍にするだけであれば、ニューロン数16個と256個の間で大きな違いは見られません。最高と最低のオプションでも、目立った違いはありますが、桁違いではありません。[ 36 ]

参考文献

  1. ^ “Pixel Scalers” . 2016年3月2日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧
  2. ^ 「Mullard SAA5050 データシート」(PDF)2017年6月19日時点のオリジナル(PDF)からアーカイブ2018年11月12日閲覧。
  3. ^ “SAA5050 Smoothing source code from the MAME project” . GitHub . 2022年11月6日. 2023年8月13日時点のオリジナルよりアーカイブ。 2018年11月12日閲覧
  4. ^ 「SAA5050チップ上のテレテキスト参照テストページを示すフォーラム投稿」2018年11月13日時点のオリジナルよりアーカイブ2018年11月12日閲覧。
  5. ^ Thomas, Kas (1999). 「Fast Blit Strategies: A Mac Programmer's Guide」 . MacTech . 2012年6月24日時点のオリジナルよりアーカイブ。 2009年6月1日閲覧
  6. ^ libretro. "common-shaders/scalenx at master · libretro/common-shaders · GitHub" . GitHub . 2020年12月22日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧
  7. ^ 「ScaleNx - アーティファクト除去とアルゴリズム改善 [アーカイブ]」 . 2016年5月27日時点のオリジナルよりアーカイブ。 2016年5月27日閲覧
  8. ^ a b c “PixelArt Scalers” . GitHub . 2022年9月30日. 2022年10月12日時点のオリジナルよりアーカイブ2022年10月12日閲覧。
  9. ^ 「イーグル(アイデア)」Everything22007年1月18日。2012年11月9日時点のオリジナルよりアーカイブ2008年8月9日閲覧。
  10. ^ “Kreed's Homepage: 2xSaI” . 2021年2月25日時点のオリジナルよりアーカイブ2020年4月25日閲覧。
  11. ^ Stepin, Maxim. 「hq3x 拡大フィルター」 2007年7月3日時点のオリジナルよりアーカイブ2007年7月3日閲覧。
  12. ^ Byuu.リリースアナウンスArchived 2011-09-30 at the Wayback Machineアクセス日 2011-08-14.
  13. ^ libretro. "common-shaders/hqx at master · libretro/common-shaders · GitHub" . GitHub . 2019年4月6日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧
  14. ^ Hunter K. (2014年6月20日). 「Filthy Pants: A Computer Blog」 . 2016年3月4日時点のオリジナルよりアーカイブ2016年2月19日閲覧。
  15. ^ "xBRアルゴリズムチュートリアル" . 2012年9月18日. 2018年8月19日時点のオリジナルよりアーカイブ2016年2月19日閲覧。
  16. ^ libretro. "common-shaders/xbr at master · libretro/common-shaders · GitHub" . GitHub . 2017年1月15日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧
  17. ^ zenju. 「xBRZ」 . SourceForge . 2016年2月3日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧
  18. ^ "Super-xBR.pdf" . Google Docs . 2016年3月12日時点のオリジナルよりアーカイブ2016年2月19日閲覧。
  19. ^ libretro. "common-shaders/xbr/shaders/super-xbr at master · libretro/common-shaders · GitHub" . GitHub . 2016年6月8日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧
  20. ^ “Super-XBRのC/C++への移植(高速シェーダーバージョンのみ)” . 2016年3月6日. 2016年6月30日時点のオリジナルよりアーカイブ2016年7月3日閲覧。
  21. ^ “RotSprite” . Sonic Retro . 2016年2月19日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧
  22. ^ 「スプライト回転ユーティリティ」ソニック&セガレトロ掲示板2016年3月3日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧
  23. ^ Johannes Kopf and Dani Lischinski (2011). 「Depixelizing pixel art」 . ACM Transactions on Graphics . 30 (4). SIGGRAPH : 99:1–99:8. doi : 10.1145/2010324.1964994 . 2016年5月13日時点のオリジナルよりアーカイブ。 2016年5月22日閲覧
  24. ^ Vemula, Anirudh; Yeddu, Vamsidhar (2019年4月29日). 「Pixel-Art: KopfとLischinskiによる有名な論文「Depixelizing Pixel Art」を実装します」 . GitHub . 2018年6月11日時点のオリジナルよりアーカイブ。 2019年5月7日閲覧
  25. ^ Kreuzer, Felix; Kopf, Johannes; Wimmer, Michael (2015). 「リアルタイムでのピクセルアートのデピクセル化」 .第19回インタラクティブ3Dグラフィックス&ゲームシンポジウム論文集. ACM. p. 130. doi : 10.1145/2699276.2721395 . ISBN 9781450333924. S2CID  7592555 . 2019年5月7日時点のオリジナルよりアーカイブ2019年5月7日閲覧。
  26. ^ 「エッジ指向補間」 . chiranjivi.tripod.com . 2016年2月25日時点のオリジナルよりアーカイブ2019年5月7日閲覧。
  27. ^ 「NEDIアルゴリズムのシェーダー実装 - Doom9フォーラム」forum.doom9.org . 2022年5月13日時点のオリジナルよりアーカイブ2019年5月7日閲覧
  28. ^ a b Li, Xin (2010-11-26). 「新しいエッジ指向補間」(PDF) . 2010-11-26時点のオリジナル(PDF)からアーカイブ。2019-05-07閲覧
  29. ^ triticalのAvisynthフィルター
  30. ^ 「アーカイブコピー」(PDF)www.cs.ucdavis.edu2004年12月21日時点のオリジナル(PDF)からアーカイブ。 2022年1月12日閲覧{{cite web}}: CS1 maint: アーカイブされたコピーをタイトルとして (リンク)
  31. ^ “TDeint and TIVTC - Page 21 - Doom9's Forum” . 2016年3月2日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧
  32. ^ “nnedi3 vs NeuronDoubler - Doom9's Forum” . 2016年3月2日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧
  33. ^ 「NEDIアルゴリズムのシェーダー実装 - ページ6 - Doom9のフォーラム」2016年3月2日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧
  34. ^ 「NNEDI - フィールド内デインターレースフィルタ - Doom9のフォーラム」2016年3月2日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧
  35. ^ "Nnedi3" . AviSynth . 2019年5月7日時点のオリジナルよりアーカイブ。 2019年5月7日閲覧
  36. ^ tritical (2019-04-30), nnedi3 - Readme.txt2019-04-17にオリジナルからアーカイブ2019-05-07に取得

参照