

ピクセル アート スケーリング アルゴリズムは、手描きの 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つの新しいピクセルに拡張する。
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× アルゴリズムは、4 倍の解像度を得るために EPX を 2 回適用するだけです。
Scale3×/AdvMAME3× と ScaleFX

AdvMAME3×/Scale3× アルゴリズム ( dosbox.confオプション経由でDOSBoxで利用可能) は、EPX を 3× の場合に一般化したものと考えることができます。コーナー ピクセルは EPX と同じように計算されます。
scaler=advmame3x
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=え (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× Scale and Interpolation engine の略で、Eagle にヒントを得たものです。Kreed としても知られる Derek Liauw Kie Fa によって設計され、主にコンソールおよびコンピューターエミュレーターでの使用を目的としており、この分野ではかなり人気があります。ZSNESやVisualBoyAdvanceなど、最も人気のあるエミュレーターの多くは、このスケーリング アルゴリズムを機能として提供しています。スケーリング アルゴリズムには若干異なるバージョンがいくつか用意されており、これらはSuper 2×SaIやSuper Eagleと呼ばれることがよくあります。

2xSaI ファミリは、以下の A でマークされたピクセルがスケーリングされる 4 × 4ピクセル マトリックスで動作します。
国際 GABK --\ WX HCDL --/ YZ MNOP
16 ビット ピクセルの場合、16 ビット ピクセル形式が 565 か 555 かに応じて変化するピクセル マスクを使用します。定数colorMask、lowPixelMask、qColorMask、qLowPixelMask、redBlueMaskはgreenMask16 ビット マスクです。下位 8 ビットはどちらのピクセル形式でも同じです。
2 つの補間関数について説明します。
INTERPOLATE(uint32 A、UINT32 B)。
-- A と B の直線中点
(A == B) の場合は A を返します。
戻る (
((A & colorMask) >> 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その逆、または両方が対角線である、または対角線上の一致がない) をチェックします。これらの中で、3 つまたは 4 つの同一ピクセルをチェックします。これらの条件に基づいて、アルゴリズムは各出力ピクセルに対して、A、B、C、または D のいずれかを使用するか、またはこれら 4 つのみの間で補間するかを決定します。2xSaI 任意スケーラーは、任意の画像を任意の解像度に拡大でき、バイリニア フィルタリングを使用してピクセルを補間します。
KreedはソースコードをGNU General Public Licenseの下で公開したため[10]、そのライセンスの下で公開されたプロジェクトで利用したい人は誰でも自由に利用できます。非GPLプロジェクトで使用したい開発者は、Kreedの既存のコードを一切使用せずにアルゴリズムを書き直す必要があります。
DosBoxではオプション経由で利用できますscaler=2xsai。
本社んx 家族
Maxim Stepin の hq2x、hq3x、hq4x は、それぞれ 2:1、3:1、4:1 のスケール係数用です。各ピクセルの色値をその 8 つの隣接ピクセルの色値と比較し、隣接ピクセルを近いか遠いかマークし、事前に生成されたルックアップ テーブルを使用して、対応する 4、9、または 16 の出力ピクセルのそれぞれについて、入力ピクセルの値の適切な比率を見つけます。hq3x ファミリは、傾きが ±0.5、±1、または ±2 で、入力でアンチエイリアスされていない対角線を完全に滑らかにします。それ以外の傾きの対角線は、出力で 2 つの傾きが交互に現れます。また、非常にきつい曲線も滑らかにします。2xSaI とは異なり、出力をアンチエイリアスします。[11] [8]
-
最近傍補間により3倍に拡大された画像
-
hq3xアルゴリズムで3倍に拡大された画像
hq n x は当初、スーパーファミコンのエミュレータZSNES用に作成されました。bsnes の作者は、 hq2x のスペース効率の高い実装をパブリックドメインにリリースしました。[12] xBR の初期バージョンに匹敵する品質を持つシェーダーへの移植版が利用可能です。[13]移植前は、「scalehq」と呼ばれるシェーダーが hqx とよく混同されていました。[14]
xBRファミリー
このファミリーには、 xBR、xBRZ、xBR-Hybrid、Super xBR、xBR+3D、Super 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はマルチコアCPUと64ビットアーキテクチャ向けに最適化されており、単一の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 倍のアップスケールを使用します。次に、丸め座標を使用してすべてのピクセルを回転します。最後に、新しい色を導入せずに 3 倍のダウンスケールを実行します。各ステップのすべての操作は独立しているため、並列で実行してパフォーマンスを大幅に向上させることができます。
コップ・リシンスキー
Kopf-Lischinskiアルゴリズムは、2011年の論文「Depixelizing Pixel Art」で説明されている、ピクセルアートから解像度に依存しないベクターグラフィックを抽出する新しい方法です。 [23] Python実装が利用可能です。[24]
このアルゴリズムはGPUに移植され、リアルタイムレンダリング用に最適化されています。このバリアントのソースコードは入手可能です。[25]
エッジ指向補間 (EDI)
エッジ指向補間(EDI)は、統計的サンプリングを使用して、画像を拡大したときの品質を保証するアップスケーリング手法を指します。[26] [27]エッジを検出して線形補間のブレンド重みを生成したり、ピクセルをその近傍の状態に応じて分類し、その分類に基づいて異なる等方性補間スキームを使用したりする方法が以前にいくつかありました。各補間アプローチは、近隣ピクセルの加重平均に要約されます。目標は、最適な重みを見つけることです。双線形補間では、すべての重みが等しくなるように設定します。双三次補間やシンク補間などの高次補間方法では、隣接するピクセルだけでなく、より多くの近隣ピクセルを考慮します。
ネディ
NEDI(New Edge-Directed Interpolation)は、元の画像の局所共分散を計算し、それを使用して高解像度で補間を適応させます。これはこのファミリーのプロトタイプフィルタです。[28]
EDIアップサイザー
EDIUpsizer [29]は、NEDI (新しいエッジ指向補間) を使用して、画像を水平方向と垂直方向の両方で 2 倍にリサイズするリサンプリング フィルタです。[28] EDIUpsizer は、基本的な NEDI にいくつかの変更を加えて、NEDI が細かい領域で作成する多くのアーティファクトを防止します。これには、条件数テスト、適応ウィンドウ サイズ、[30]、およびキャッピング制約が含まれます。NEDI に対するすべての変更と制約はオプション (オン/オフの切り替えが可能) であり、ユーザーが構成できます。このフィルタはかなり低速です。
高速EDIアップサイザー
FastEDIUpsizer は、EDIUpsizer のスリム化バージョンで、速度がわずかに向上しています。一定の8 × 8ウィンドウ サイズを使用し、輝度平面でのみ NEDI を実行し、フォールバック補間方法としてバイキュービック補間またはバイリニア補間のいずれかのみを使用します。
イーディ3
もう 1 つのエッジ指向補間フィルタ。スキャン ライン内のすべてのピクセルに関係するコスト関数を最小化することで機能します。処理速度は遅いです。
EEDI2
EEDI2は、既存の画像を2⋅y(n)にコピーし、欠落しているフィールドを補間することで、画像を垂直方向に2倍にリサイズします。これは、デインターレースのためのエッジ指向の補間を目的としています(つまり、通常の画像のリサイズ用に作られたものではありませんが、リサイズすることもできます)。EEDI2はTDeintとTIVTCの両方で使用できます。これを行う方法の詳細については、ディスカッションリンクを参照してください。[31]
スーパー解像度
SuperRes [32]シェーダーは、NEDI (または他のスケーリングアルゴリズム) と組み合わせて使用できる異なるスケーリング方法を使用します。この方法は、作成者の Shiandow によって 2014 年の Doom9 フォーラム投稿で詳しく説明されています。[33]この方法は、NEDI のみを使用するよりも優れた結果をもたらすことが多く、NNEDI3 に匹敵します。これらは現在、MPDN レンダリングスクリプトとしても利用できます。
ネディ
NNEDI は、フィールド内デインターレース装置ファミリーであり、画像を 2 の累乗で拡大するためにも使用できます。デインターレース装置として使用する場合、フレームを取り込み、1 つのフィールドを破棄し、保持されたフィールドの情報のみを使用して、不足しているピクセルを補間します。これまでに、NNEDI には 3 つの主要な世代があります。
オリジナルバージョンのNNEDIは、YUY2とYV12入力で動作します。[34]nnedi2_rpow2 NNEDI2はRGB24のサポートとアップスケーリング用の特別な機能を追加しました。NNEDI3は予測ニューラルネットワークでNNEDI2を拡張します。ネットワークのサイズと検査する近傍の両方を調整して、速度と品質のトレードオフを実現できます。[35]
これは品質と速度のオプションです。ただし、特定のサイズ変更係数でのニューロン数の違いは通常小さいですが、画像サイズを 4 倍にすると、ニューロン数間のパフォーマンスの違いは大きくなります。解像度を 2 倍にすることだけを計画している場合は、16 ニューロンと 256 ニューロンの間に大きな違いは見られません。最高のオプションと最低のオプションの間にはまだ顕著な違いがありますが、桁違いではありません。[36]
参考文献
- ^ 「Pixel Scalers」。2016年3月2日時点のオリジナルよりアーカイブ。2016年2月19日閲覧。
- ^ 「Mullard SAA5050 データシート」(PDF) 。 2017年6月19日時点のオリジナル(PDF)からアーカイブ。2018年11月12日閲覧。
- ^ 「SAA5050 Smoothing source code from the MAME project」。GitHub。2022年11月6日。2023年8月13日時点のオリジナルよりアーカイブ。2018年11月12日閲覧。
- ^ 「SAA5050チップ上のテレテキスト参照テストページを示すフォーラム投稿」。2018年11月13日時点のオリジナルよりアーカイブ。2018年11月12日閲覧。
- ^ Thomas, Kas (1999). 「Fast Blit Strategies: A Mac Programmer's Guide」. MacTech . 2012-06-24 時点のオリジナルよりアーカイブ。2009-06-01取得。
- ^ libretro. "common-shaders/scalenx at master · libretro/common-shaders · GitHub". GitHub . 2020年12月22日時点のオリジナルよりアーカイブ。2016年2月19日閲覧。
- ^ 「ScaleNx - アーティファクト除去とアルゴリズム改善 [アーカイブ]」。2016年5月27日時点のオリジナルよりアーカイブ。2016年5月27日閲覧。
- ^ abc "PixelArt Scalers". GitHub . 2022年9月30日. 2022年10月12日時点のオリジナルよりアーカイブ。 2022年10月12日閲覧。
- ^ “Eagle (idea)”. Everything2 . 2007-01-18. 2012-11-09時点のオリジナルよりアーカイブ。2008-08-09閲覧。
- ^ “Kreed's Homepage: 2xSaI”. 2021年2月25日時点のオリジナルよりアーカイブ。2020年4月25日閲覧。
- ^ Stepin, Maxim. 「hq3x 拡大フィルター」。2007 年 7 月 3 日時点のオリジナルよりアーカイブ。2007年 7 月 3 日閲覧。
- ^ Byuu. リリース発表 Archived 2011-09-30 at the Wayback Machineアクセス日 2011-08-14.
- ^ libretro. "common-shaders/hqx at master · libretro/common-shaders · GitHub". GitHub . 2019年4月6日時点のオリジナルよりアーカイブ。2016年2月19日閲覧。
- ^ Hunter K. (2014年6月20日). “Filthy Pants: A Computer Blog” 2016年3月4日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧。
- ^ 「xBRアルゴリズムチュートリアル」 2012年9月18日。2018年8月19日時点のオリジナルよりアーカイブ。2016年2月19日閲覧。
- ^ libretro. "common-shaders/xbr at master · libretro/common-shaders · GitHub". GitHub . 2017年1月15日時点のオリジナルよりアーカイブ。2016年2月19日閲覧。
- ^ zenju. "xBRZ". SourceForge . 2016年2月3日時点のオリジナルよりアーカイブ。2016年2月19日閲覧。
- ^ 「Super-xBR.pdf」。Google Docs。2016年3月12日時点のオリジナルよりアーカイブ。2016年2月19日閲覧。
- ^ libretro. "common-shaders/xbr/shaders/super-xbr at master · libretro/common-shaders · GitHub". GitHub . 2016年6月8日時点のオリジナルよりアーカイブ。2016年2月19日閲覧。
- ^ “Super-XBR を C/C++ に移植 (高速シェーダーバージョンのみ)”。2016年3月6日。2016年6月30日時点のオリジナルよりアーカイブ。 2016年7月3日閲覧。
- ^ “RotSprite”. Sonic Retro . 2016年2月19日時点のオリジナルよりアーカイブ。2016年2月19日閲覧。
- ^ 「Sprite Rotation Utility」。Sonic and Sega Retro Message Board。2016年3月3日時点のオリジナルよりアーカイブ。 2016年2月19日閲覧。
- ^ Johannes Kopf および Dani Lischinski (2011)。「ピクセルアートのデピクセル化」。ACM Transactions on Graphics。30 ( 4) 。SIGGRAPH : 99 :1–99:8。doi : 10.1145 /2010324.1964994。2016年5月13日時点のオリジナルよりアーカイブ。 2016年5月22日閲覧。
- ^ Vemula, Anirudh; Yeddu, Vamsidhar (2019年4月29日). 「Pixel-Art: KopfとLischinskiによる有名な「Depixelizing Pixel Art」論文を実装します」。GitHub 。 2018年6月11日時点のオリジナルよりアーカイブ。2019年5月7日閲覧。
- ^ 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日閲覧。
- ^ 「Edge-Directed Interpolation」。chiranjivi.tripod.com 。2016年2月25日時点のオリジナルよりアーカイブ。2019年5月7日閲覧。
- ^ 「NEDIアルゴリズムのシェーダー実装 - Doom9のフォーラム」。forum.doom9.org。2022年5月13日時点のオリジナルよりアーカイブ。 2019年5月7日閲覧。
- ^ ab Li, Xin (2010-11-26). 「新しいエッジ指向補間」(PDF)。2010-11-26 のオリジナル(PDF)からアーカイブ。2019-05-07に閲覧。
- ^ tritical の Avisynth フィルター
- ^ 「アーカイブコピー」(PDF)。www.cs.ucdavis.edu。2004年12月21日時点のオリジナル(PDF)からアーカイブ。 2022年1月12日閲覧。
{{cite web}}: CS1 maint: archived copy as title (link) - ^ 「TDeint and TIVTC - Page 21 - Doom9's Forum」。2016年3月2日時点のオリジナルよりアーカイブ。2016年2月19日閲覧。
- ^ “nnedi3 vs NeuronDoubler - Doom9's Forum”. 2016年3月2日時点のオリジナルよりアーカイブ。2016年2月19日閲覧。
- ^ 「NEDI アルゴリズムのシェーダー実装 - ページ 6 - Doom9 のフォーラム」。2016 年 3 月 2 日時点のオリジナルよりアーカイブ。2016年2 月 19 日閲覧。
- ^ 「NNEDI - フィールド内デインターレース フィルター - Doom9 のフォーラム」。2016 年 3 月 2 日時点のオリジナルよりアーカイブ。2016年2 月 19 日閲覧。
- ^ “Nnedi3”. AviSynth . 2019年5月7日時点のオリジナルよりアーカイブ。2019年5月7日閲覧。
- ^ tritical (2019-04-30)、nnedi3 - Readme.txt、2019-04-17にオリジナルからアーカイブ、2019-05-07に取得
参照
- libretro - 前述のアルゴリズムの多くをシェーダーとして実装します
- Pixelscalers - スタンドアロン ツールでの ScaleNx、hqNx、superXBR アルゴリズムの C++ 実装
