Piksel sanatı ölçekleme algoritmaları - Pixel-art scaling algorithms

Piksel sanatı ölçekleme algoritmaları sıklıkla kullanılan grafik filtrelerdir video oyun konsolu emülatörleri elle çizilmiş 2D'yi geliştirmek için piksel sanatı grafikler. Piksel sanatının yeniden ölçeklendirilmesi, bir uzmanlık alt alanıdır. görüntü yeniden ölçekleme.

Gibi piksel sanatı grafikler genellikle çok düşük çözünürlükler, genellikle sınırlı bir renk paleti ile tek tek piksellerin dikkatlice yerleştirilmesine güvenirler. Bu, tek tek piksellere kadar çok az çözünürlükle karmaşık şekilleri tanımlamak için yüksek miktarda stilize edilmiş görsel ipuçlarına dayanan ve piksel sanatının görüntü ölçeklemesini özellikle zor bir problem haline getiren grafiklerle sonuçlanır.

Bir dizi özel algoritma[1] Geleneksel ölçeklendirme algoritmaları bu tür algısal ipuçlarını hesaba katmadığından, piksel sanatı grafiklerini işlemek için geliştirilmiştir.

Bu teknolojinin tipik bir uygulaması, dördüncü jenerasyon ve daha erken video oyunları Arcade ve konsol emülatörlerinde çoğu, 60'da yeterince küçük giriş görüntüleri için gerçek zamanlı olarak çalışacak şekilde tasarlanmıştır. saniyedeki kare sayısı. Bu, türüne kısıtlamalar getirir. programlama bu tür gerçek zamanlı işlemler için kullanılabilecek teknikler. Çoğu yalnızca belirli ölçek faktörleri üzerinde çalışır: 2 × en yaygın olanıdır, 3 ×, 4 ×, 5 × ve 6 × da mevcuttur.

Yaygın piksel sanatı ölçekleme algoritmalarının karşılaştırılması. Farklılıkları görmek için tam çözünürlükte görüntüleyin.

Algoritmalar

SAA5050 'çapraz yumuşatma'

Mullard SAA5050 Teletekst karakter üretme çipi (1980), dahili ROM'undan daha düşük çözünürlüklü bir sunumdan ekranda daha yüksek çözünürlüklü karakterler oluşturmak için ilkel bir piksel ölçekleme algoritması kullandı. Dahili olarak her bir karakter şekli 5 × 9 piksellik bir ızgara üzerinde tanımlandı, bu daha sonra köşegenleri düzleştirerek enterpolasyonlu 10 × 18 piksellik bir karaktere sahip, karakteristik olarak köşeli bir şekle sahip, üstte ve solda iki piksel boşluk alanı ile çevrelenmiştir. . Algoritma yalnızca tek renkli kaynak veriler üzerinde çalışır ve kaynak piksellerin "açık" veya "kapalı" olmasına bağlı olarak mantıksal olarak doğru veya yanlış olacağını varsayar. Piksellerin "ızgara örüntüsünün dışında" kapalı olduğu varsayılır.[2][3][4]

Algoritma şu şekilde çalışır:

A B C -  1 2D E F - / 3 41 = B | (A & E &! B &! D) 2 = B | (C & E &! B &! F) 3 = E | (! A &! E & B & D) 4 = E | (! C &! E & B & F) 

Aşağıdaki Eagle algoritması gibi bu algoritmanın bir kusuru olduğuna dikkat edin: İçi boş bir elmas şeklinde 4 piksellik bir desen görünürse, oyuk genişleme tarafından yok edilecektir. SAA5050'nin dahili karakter ROM'u, bu modeli kullanmaktan kesinlikle kaçınır.

EPX / Ölçek2 × / AdvMAME2 ×

Eric'in Piksel Genişletmesi (EPX) tarafından geliştirilen bir algoritmadır. Eric Johnston -de LucasArts 1992 civarında, taşırken SCUMM IBM PC'den (320 × 200 × 256 renkte çalışan), bu çözünürlük aşağı yukarı iki katında çalışan eski renkli Macintosh bilgisayarlara kadar motor oyunları.[5]Algoritma, P'nin çevresine göre P'yi 4 yeni piksele genişleterek şu şekilde çalışır:

EPX algoritması, piksel P'yi dört yeni piksele genişletir.

 1 = P; 2 = P; 3 = P; 4 = P; EĞER C == A => 1 = A EĞER A == B => 2 = B EĞER D == C => 3 = C EĞER B == D => 4 = D EĞER A, B, C, D, üç veya daha fazlası aynıdır: 1 = 2 = 3 = 4 = P

Bu aynı algoritmanın sonraki uygulamaları (2001 civarında geliştirilen AdvMAME2 × ve Scale2 × gibi) biraz daha verimli ancak işlevsel olarak aynı uygulamaya sahiptir:

 1 = P; 2 = P; 3 = P; 4 = P; EĞER C == A VE C! = D VE A! = B => 1 = A EĞER A == B VE A! = C VE B! = D => 2 = B EĞER D == C VE D! = B VE C! = A => 3 = C EĞER B == D VE B! = A VE D! = C => 4 = D

AdvMAME2 × mevcuttur DOSBox aracılığıyla ölçekleyici = advmame2x dosbox.conf seçeneği.

AdvMAME4 × / Scale4 × algoritması, 4 × çözünürlük elde etmek için yalnızca iki kez uygulanan EPX'dir.

Scale3 × / AdvMAME3 × ve ScaleFX

EPX, bitmap yazı tiplerini ölçeklemek için kullanılabilir. Yukarıdan aşağıya: a) orijinal yazı tipi boyutu; b) en yakın komşu 2 × ölçeklendirme; c) EPX 2 × ölçeklendirme; d) en yakın komşu 3 × ölçeklendirme; e) EPX 3 × ölçeklendirme.

AdvMAME3 × / Scale3 × algoritması ( DOSBox aracılığıyla ölçekleyici = advmame3x dosbox.conf seçeneği) EPX'in 3 × büyüklüğünde bir genellemesi olarak düşünülebilir. Köşe pikselleri EPX ile aynı şekilde hesaplanır.

AdvMAME3x / Scale3x, piksel E'yi 9 yeni piksele ölçeklendiriyor

 1 = E; 2 = E; 3 = E; 4 = E; 5 = E; 6 = E; 7 = E; 8 = E; 9 = E; EĞER D == B VE D! = H VE B! = F => 1 = D EĞER (D == B VE D! = H VE B! = F VE E! = C) VEYA (B == F VE B ! = D VE F! = H VE E! = A) => 2 = B EĞER B == F VE B! = D VE F! = H => 3 = F EĞER (H == D VE H! = F VE D! = B VE E! = A) VEYA (D == B VE D! = H VE B! = F VE E! = G) => 4 = D 5 = E EĞER (B == F VE B! = D VE F! = H VE E! = I) VEYA (F == H VE F! = B VE H! = D VE E! = C) => 6 = F EĞER H == D VE H! = F VE D! = B => 7 = D EĞER (F == H VE F! = B VE H! = D VE E! = G) VEYA (H == D VE H! = F VE D! = B VE E ! = I) => 8 = H EĞER F == H VE F! = B VE H! = D => 9 = F

Ayrıca, Sp00kyFox tarafından geliştirilen ScaleFX adlı Scale3 × üzerinde geliştirilmiş bir varyant ve ScaleFX-Hybrid adlı Reverse-AA ile birleştirilmiş bir versiyon da bulunmaktadır.[6][7]

Kartal

Eagle şu şekilde çalışır: Her bir piksel için 4 adet çıkış piksel üreteceğiz. İlk olarak, 4'ünün tamamını şu anda ölçeklediğimiz pikselin rengine ayarlayın (en yakın komşu olarak). Daha sonra yukarıdaki, soldaki ve çapraz olarak sol üstteki üç piksele bakın: üçü de birbiriyle aynı renkse, çıktı karemizin sol üst pikselini en yakın komşu renge tercih ederek o renge ayarlayın. Dört pikselin tümü için benzer şekilde çalışın ve ardından bir sonrakine geçin.[8]

En ortadaki pikselin ölçeklenecek piksel olduğu 3 × 3 piksellik bir girdi matrisi ve 2 × 2 piksellik bir çıktı matrisi (yani ölçeklenmiş piksel) varsayın

ilk: | Sonra. . . -  CC | S T U -  1 2. C. - / CC | V C W - / 3 4.. . | X Y Z | EĞER V == S == T => 1 = S | EĞER T == U == W => 2 = U | EĞER V == X == Y => 3 = X | EĞER W == Z == Y => 4 = Z

Böylece, beyaz bir arka plan üzerinde tek bir siyah pikselimiz varsa, kaybolacaktır. Bu, Eagle algoritmasındaki bir hatadır, ancak EPX, 2xSaI ve HQ2x gibi diğer algoritmalar tarafından çözülmüştür.

2 × SaI

2 × Ölçek ve İnterpolasyon motorunun kısaltması olan 2 × SaI, Eagle'dan esinlenmiştir. Kreed olarak da bilinen Derek Liauw Kie Fa tarafından, öncelikle konsol ve bilgisayarda kullanılmak üzere tasarlandı. öykünücüler ve bu niş içinde oldukça popüler kaldı. Dahil olmak üzere en popüler emülatörlerin çoğu ZSNES ve VisualBoyAdvance, bu ölçeklendirme algoritmasını bir özellik olarak sunun. Ölçekleme algoritmasının biraz farklı versiyonları mevcuttur ve bunlara genellikle Süper 2 × SaI ve Süper Kartal.

Super2xSaI'nin tek bir pikseli ölçeklemek için kullandığı çevreleyen piksellerin matrisi.

2xSaI ailesi, aşağıda A olarak işaretlenen pikselin ölçeklendiği 4 × 4 piksel matrisi üzerinde çalışır:

I E F JG A B K -  W XH C D L - / Y ZM N O P

16 bit pikseller için, 16 bit piksel formatının 565 veya 555 olmasına bağlı olarak değişen piksel maskeleri kullanırlar. colorMask, lowPixelMask, qColorMask, qLowPixelMask, redBlueMask, ve greenMask 16 bitlik maskelerdir. Düşük 8 bit, her iki piksel biçiminde de aynıdır.

İki enterpolasyon işlevi açıklanmıştır:

INTERPOLATE (uint32 A, UINT32 B) eğer (A == B) A döndürürse; return (((A & colorMask) >> 1) + ((B & colorMask) >> 1) + (A & B & lowPixelMask)); Q_INTERPOLATE (uint32 A, uint32 B, uint32 C, uint32 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; dönüş x + y;

Algoritma, A, B, C ve D'yi çapraz eşleşme için kontrol eder, öyle ki A == D ve B! = Cya da tam tersi, ya da her ikisi de çaprazsa ya da çapraz eşleşme yoksa. Bunların içinde üç veya dört özdeş pikseli kontrol eder. Bu koşullara bağlı olarak, algoritma her çıktı pikseli için A, B, C veya D'den birini veya yalnızca bu dördü arasında bir enterpolasyon kullanıp kullanmayacağına karar verir. 2xSaI rastgele ölçekleyici, herhangi bir görüntüyü herhangi bir çözünürlüğe büyütebilir ve pikselleri enterpolasyon yapmak için çift doğrusal filtreleme kullanır.

Kreed piyasaya sürüldüğünden beri[9] altındaki kaynak kodu GNU Genel Kamu Lisansı, o lisans altında yayınlanan bir projede kullanmak isteyen herkes tarafından ücretsiz olarak kullanılabilir. GPL dışı bir projede kullanmak isteyen geliştiricilerin, Kreed'in mevcut kodlarından herhangi birini kullanmadan algoritmayı yeniden yazması gerekecektir.

Mevcuttur DosBox üzerinden ölçekleyici = 2xsai seçeneği.

hqnx ailesi

Maxim Stepin hq2x, hq3x ve hq4x, sırasıyla 2: 1, 3: 1 ve 4: 1 ölçek faktörleri içindir. Her biri, her pikselin renk değerini en yakın sekiz komşusuyla karşılaştırarak, komşuları yakın veya uzak olarak işaretleyerek ve 4, 9 veya 4'ün her biri için giriş piksellerinin değerlerinin doğru oranını bulmak için önceden oluşturulmuş bir arama tablosu kullanarak çalışır. 16 karşılık gelen çıktı pikseli. Hq3x ailesi, eğimi ± 0,5, ± 1 veya ± 2 olan ve girdide kenarları yumuşatılmamış herhangi bir çapraz çizgiyi mükemmel bir şekilde yumuşatır; Biri diğer herhangi bir eğime sahip çıktıdaki iki eğim arasında değişecektir. Aynı zamanda çok sıkı eğrileri de düzleştirir. 2xSaI'den farklı olarak, çıktının kenarlarını yumuşatır.[10]

hqnx başlangıçta Super Nintendo emülatörü için oluşturuldu ZSNES. Yazarı bsnes kamu malı için hq2x'in alan açısından verimli bir uygulamasını yayınladı.[11] Bir bağlantı noktası gölgelendiriciler xBR'nin önceki sürümleriyle karşılaştırılabilir kaliteye sahip olan mevcuttur.[12] Bağlantı noktasından önce, "scalehq" adlı bir gölgelendiricinin genellikle hqx ile karıştırılması gerekirdi.[13]

xBR ailesi

Bu ailede 6 filtre vardır: xBR , xBRZ, xBR-Hibrit, Süper xBR, xBR + 3D ve Süper xBR + 3D.

Hyllian tarafından oluşturulan xBR ("kurallara göre ölçekleme"), HQx ile hemen hemen aynı şekilde çalışır (örüntü tanımaya dayalı olarak) ve yukarıdaki model verildiğinde HQx ile aynı sonucu üretir.[14] Ancak, 2 aşamalı bir set kullanarak HQx'ten daha ileri gider interpolasyon gibi daha karmaşık kalıpları daha iyi işleyen kurallar kenarları yumuşatılmış çizgiler ve eğriler. Ölçeklendirilmiş arka plan dokuları, HQx (uygulamada genellikle ScaleHQ) gibi bulanıklaşmak yerine orijinal görüntünün keskin özelliklerini korur. En yeni xBR sürümleri çok geçişlidir ve küçük ayrıntıları daha iyi koruyabilir. Ayrıca xBR-Hybrid adlı Reverse-AA gölgelendiriciyle birleştirilmiş bir xBR sürümü de vardır.[15] xBR + 3D, yalnızca 2D öğeleri filtreleyen 3D maskeli bir sürümdür.

xBRZ by Zenju, xBR'nin değiştirilmiş bir sürümüdür. Sıfırdan CPU tabanlı bir filtre olarak uygulanır. C ++ .[16] XBR'nin örüntü tanıma ve interpolasyonuyla aynı temel fikri kullanır, ancak birkaç piksel kadar küçük ince görüntü ayrıntılarını korumak için tasarlanmış farklı bir kural kümesiyle. Bu, yüzlerdeki ve özellikle gözlerdeki ayrıntıları ölçeklendirmek için kullanışlı hale getirir. xBRZ aşağıdakiler için optimize edilmiştir: çok çekirdekli CPU'lar ve 64 bit mimariler ve yalnızca tek bir CPU çekirdeğinde çalışırken bile HQx'ten% 40–60 daha iyi performans gösterir.[kaynak belirtilmeli ] Görüntülerin alfa kanalıyla ölçeklendirilmesini ve 2 × ila 6 × arasında tamsayı faktörlerine göre ölçeklendirmeyi destekler.

Süper xBR[17][18] Hylian tarafından 2015 yılında geliştirilen bir algoritmadır. Lineer olmayan bir şekilde xBR kenar algılama kuralları ile birlikte bilinen bazı lineer filtre kombinasyonlarını kullanır. İki geçişte çalışır ve bir görüntüyü yalnızca ikiye (veya yeniden uygulayarak ikinin katlarına) ölçekleyebilir ve ayrıca zil önleme filtresine sahiptir. Super xBR + 3D, yalnızca 2D öğeleri filtreleyen 3D maskeli bir sürümdür. Ayrıca C / C ++ ile yeniden yazılmış bir Super xBR sürümü de vardır.[19]

RotSprite

Sol: Orijinal piksel resim görüntüsü
Orta: En yakın komşu döndürme algoritması kullanılarak döndürülen resim
Sağda: RotSprite algoritması kullanılarak döndürülen resim

RotSprite, Xenowhirl tarafından geliştirilen sprite'lar için bir ölçeklendirme ve döndürme algoritmasıdır. En yakın komşu döndürme algoritmalarından çok daha az yapaylık üretir ve EPX gibi görüntüye yeni renkler katmaz (çoğu enterpolasyon sisteminin aksine).[20]

Algoritma ilk olarak, benzer (özdeş değil) pikselleri eşleşme olarak ele alan değiştirilmiş bir Ölçek2 × algoritması ile görüntüyü orijinal boyutunun 8 katına ölçeklendirir. Daha sonra (isteğe bağlı olarak) sınır pikselleri olmayan örneklenmiş noktaları tercih ederek hangi dönüş ofsetinin kullanılacağını hesaplar. Daha sonra, döndürülen görüntü, büyük görüntüyü aynı anda orijinal boyutuna küçülten ve görüntüyü döndüren en yakın komşu ölçekleme ve döndürme algoritmasıyla oluşturulur. Son olarak, kaynak görüntüdeki karşılık gelen piksel farklıysa ve hedef pikselin üç özdeş komşusu varsa gözden kaçan tek piksel ayrıntıları (isteğe bağlı olarak) geri yüklenir.[21]

Hızlı RotSprite

Fast RotSprite, Oleg Mekekechko tarafından geliştirilen piksel sanatı için hızlı döndürme algoritmasıdır. Pixel Studio app. Dayanmaktadır RotSprite ancak hafif kalite kaybıyla daha iyi performansa sahiptir. Daha büyük görüntüleri gerçek zamanlı olarak işleyebilir. 8 × yükseltme yerine, Hızlı RotSprite tekli 3 × yukarı ölçek kullanır. Daha sonra tüm pikselleri yuvarlama koordinatlarıyla döndürür. Son olarak, yeni renkler getirmeden 3 × küçültme gerçekleştirir. Her adımdaki tüm işlemler bağımsız olduğundan, performansı büyük ölçüde artırmak için paralel olarak yapılabilir.

Kopf-Lischinski

Kopf – Lischinski algoritması, çözünürlükten bağımsız olarak ayıklamanın yeni bir yoludur. vektör grafikleri 2011 tarihli "Depixelizing Pixel Art" adlı makalede açıklanan piksel sanatından.[22] Bir Python uygulaması mevcuttur.[23]

Algoritma, GPU'lara taşındı ve gerçek zamanlı işleme için optimize edildi. kaynak kodu bu varyant için mevcuttur.[24]

Kenar Yönlü Enterpolasyon (EDI)

Kenara yönelik enterpolasyon (EDI), bir görüntünün ölçeğini büyütürken kalitesini sağlamak için istatistiksel örnekleme kullanan büyütme tekniklerini açıklar.[25][26] Doğrusal enterpolasyon için harmanlama ağırlıkları oluşturmak için kenarları tespit etmeyi veya pikselleri komşu koşullara göre sınıflandırmayı ve sınıflandırmaya dayalı farklı izotropik enterpolasyon şemaları kullanmayı içeren daha önceki birkaç yöntem vardı. Amaç, optimum ağırlıkları bulmaktır. Çift doğrusal enterpolasyon, tüm ağırlıkları eşit olacak şekilde ayarlar. Bikübik veya samimi enterpolasyon gibi daha yüksek dereceli enterpolasyon yöntemleri, bitişik olanlardan daha fazla sayıda komşuyu dikkate alır.

NEDI

NEDI (Yeni Kenar Yönlü Enterpolasyon), orijinal görüntüdeki yerel kovaryansları hesaplar ve bunları enterpolasyonu yüksek çözünürlükte uyarlamak için kullanır. Bu ailenin prototip filtresidir.[27]

EDIUpsizer

EDIUpsizer[28] NEDI (yeni kenara yönelik enterpolasyon) kullanarak bir görüntüyü hem yatay hem de dikey olarak ikiye katlayan yeniden örnekleme filtresidir.[27] EDIUpsizer ayrıca, NEDI'nin ayrıntılı alanlarda oluşturduğu birçok yapıyı önlemek için temel NEDI'da birkaç değişiklik kullanır. Bunlar, durum numarası testi ve uyarlanabilir pencere boyutunu içerir,[29] yanı sıra sınırlama kısıtlamaları. NEDI'ye yapılan tüm değişiklikler ve kısıtlamalar isteğe bağlıdır (açılıp kapatılabilir) ve kullanıcı tarafından yapılandırılabilir. Sadece bu filtrenin oldukça yavaş olduğunu unutmayın

FastEDIUpsizer

FastEDIUpsizer, hız için biraz daha fazla ayarlanmış EDIUpsizer'ın zayıflatılmış bir sürümüdür. Sabit bir 8 × 8 pencere boyutu kullanır, yalnızca luma düzleminde NEDI gerçekleştirir ve geri dönüş enterpolasyonu yöntemi olarak yalnızca çift kübik veya çift doğrusal enterpolasyon kullanır.

eedi3

Başka bir kenara yönelik enterpolasyon filtresi. Bir tarama hattındaki her pikseli kapsayan bir maliyet işlevini en aza indirerek çalışır. Bu yavaş.

EEDI2

EEDI2, mevcut resmi 2⋅y (n) boyutuna kopyalayıp eksik alanın enterpolasyonunu yaparak bir resmi dikey yönde 2 × yeniden boyutlandırır. Taramasız hale getirmek için kenara yönelik enterpolasyon için tasarlanmıştır (yani normal bir görüntüyü yeniden boyutlandırmak için gerçekten yapılmamıştır, ancak bunu da yapabilir). EEDI2 hem TDeint hem de TIVTC ile kullanılabilir, bunun nasıl yapılacağı hakkında daha fazla bilgi için tartışma bağlantısına bakın.[30]

SuperRes

SuperRes[31] gölgelendiriciler, NEDI (veya başka herhangi bir ölçekleme algoritması) ile birlikte kullanılabilen farklı bir ölçekleme yöntemi kullanır. Bu yöntem burada ayrıntılı olarak açıklanmıştır.[32] Bu yöntem sadece NEDI kullanmaktan daha iyi sonuçlar veriyor ve NNEDI3'tekilere rakip oluyor gibi görünüyor. Bunlar artık bir MPDN render yazısı olarak da mevcuttur.

NNEDI

NNEDI, alan içi bir ailedir deinterlacers bu aynı zamanda görüntüleri ikiye katlayarak büyütmek için de kullanılabilir. Görüntü ayrıştırıcı olarak kullanıldığında, bir çerçeve alır, bir alanı atar ve ardından yalnızca tutulan alandaki bilgileri kullanarak eksik pikselleri enterpolasyonlu hale getirir. Şimdiye kadar NNEDI'nin üç ana nesli var.

Orijinal versiyon olan NNEDI, YUY2 ve YV12 girişi ile çalışır.[33] NNEDI2, RGB24 desteği ve özel bir işlev ekledi nnedi2_rpow2 yükseltme için. NNEDI3, bir öngörücü ile NNEDI2'yi geliştirir sinir ağı. Hem ağın boyutu hem de incelediği mahalle, hız kalitesinde bir değiş tokuş için ince ayar yapılabilir:[34]

Bu, kaliteye karşı hız seçeneğidir; bununla birlikte, belirli bir yeniden boyutlandırma faktörü için nöron miktarı arasındaki farklar genellikle küçüktür, ancak görüntü boyutunu dört katına çıkardıkça nöron sayısı arasındaki performans farkı artar. Yalnızca çözünürlüğü iki katına çıkarmayı planlıyorsanız, 16 ile 256 nöron arasında büyük farklar görmezsiniz. En yüksek ve en düşük seçenekler arasında hala göze çarpan bir fark vardır, ancak büyüklük sıraları farklı değildir.[35]

Referanslar

  1. ^ "Piksel Ölçekleyicileri". Alındı 19 Şubat 2016.
  2. ^ "Mullard SAA5050 Veri Sayfası" (PDF).
  3. ^ "SAA5050 MAME projesinden kaynak kodunu yumuşatma".
  4. ^ "SAA5050 yongasında Teletekst referans test sayfasını gösteren forum gönderisi".
  5. ^ Thomas, Kaş (1999). "Hızlı Blit Stratejileri: Bir Mac Programcı Kılavuzu". MacTech.
  6. ^ libretro. "master'da ortak gölgelendiriciler / scalenx · libretro / common-shaders · GitHub". GitHub. Alındı 19 Şubat 2016.
  7. ^ "ScaleNx - Artefakt Kaldırma ve Algoritma İyileştirme [Arşiv]". Arşivlenen orijinal 2016-05-27 tarihinde. Alındı 2016-05-27.
  8. ^ "Kartal (fikir)". Herşey2. 2007-01-18.
  9. ^ "Kreed'in Ana Sayfası: 2xSaI". Alındı 25 Nisan 2020.
  10. ^ Stepin, Maxim. "hq3x Büyütme Filtresi". Arşivlenen orijinal 2007-07-03 tarihinde. Alındı 2007-07-03.
  11. ^ Byuu. Sürüm duyurusu Erişim tarihi: 2011-08-14.
  12. ^ libretro. "master'da ortak-gölgelendiriciler / hqx · libretro / common-shaders · GitHub". GitHub. Alındı 19 Şubat 2016.
  13. ^ Avcı K. "Pis Pantolon: Bir Bilgisayar Blogu". Alındı 19 Şubat 2016.
  14. ^ "xBR algoritması eğiticisi". 2012-09-18. Alındı 19 Şubat 2016.
  15. ^ libretro. "master'da ortak-gölgelendiriciler / xbr · libretro / common-shaders · GitHub". GitHub. Alındı 19 Şubat 2016.
  16. ^ zenju. "xBRZ". SourceForge. Alındı 19 Şubat 2016.
  17. ^ "Süper-xBR.pdf". Google Dokümanlar. Alındı 19 Şubat 2016.
  18. ^ libretro. "ortak-gölgelendiriciler / xbr / gölgelendiriciler / ustada süper-xbr · libretro / common-shaders · GitHub". GitHub. Alındı 19 Şubat 2016.
  19. ^ "Super-XBR, C / C ++ 'ya taşınmıştır (yalnızca Hızlı gölgelendirici sürümü)". 6 Mart 2016.
  20. ^ "RotSprite". Sonic Retro. Alındı 19 Şubat 2016.
  21. ^ "Sprite Rotation Utility". Sonic ve Sega Retro Mesaj Panosu. Alındı 19 Şubat 2016.
  22. ^ Johannes Kopf ve Dani Lischinski (2011). "Piksel sanatını küçültme". Grafiklerde ACM İşlemleri. SIGGRAPH. 30 (4): 99:1–99:8. doi:10.1145/2010324.1964994. Alındı 2016-05-22.
  23. ^ Vemula, Anirudh; Yeddu, Vamsidhar (29 Nisan 2019). "Piksel Sanatı: Kopf ve Lischinski'nin ünlü" pikselden arındırma piksel sanatı "makalesini uyguluyoruz".
  24. ^ Kreuzer, Felix; Kopf, Johannes; Wimmer, Michael (2015). "Piksel Sanatını Gerçek Zamanlı Olarak Boyutsuzlaştırma". Etkileşimli 3 Boyutlu Grafikler ve Oyunlar 19. Sempozyum Bildirileri. ACM: 130. doi:10.1145/2699276.2721395. ISBN  9781450333924.
  25. ^ "Kenar Yönlü Enterpolasyon". chiranjivi.tripod.com. Alındı 2019-05-07.
  26. ^ "NEDI algoritmasının gölgelendirici uygulaması - Doom9 Forumu". forum.doom9.org. Alındı 2019-05-07.
  27. ^ a b Li, Xin (2010-11-26). "Yeni Kenar Yönlü İnterpolasyon" (PDF). Arşivlenen orijinal (PDF) 2010-11-26 tarihinde. Alındı 2019-05-07.
  28. ^ tritical'in Avisynth Filtreleri
  29. ^ https://web.archive.org/web/20041221052401/http://www.cs.ucdavis.edu/~bai/ECS231/finaltzeng.pdf
  30. ^ "TDeint ve TIVTC - Sayfa 21 - Doom9 Forumu". Alındı 19 Şubat 2016.
  31. ^ "nnedi3 - NeuronDoubler - Doom9 Forumu". Alındı 19 Şubat 2016.
  32. ^ "NEDI algoritmasının gölgelendirici uygulaması - Sayfa 6 - Doom9 Forumu". Alındı 19 Şubat 2016.
  33. ^ "NNEDI - alan içi görüntü ayrıştırma filtresi - Doom9 Forumu". Alındı 19 Şubat 2016.
  34. ^ "Nnedi3". AviSynth. Alındı 2019-05-07.
  35. ^ kritik (2019-04-30), nnedi3 - Readme.txt, alındı 2019-05-07

Ayrıca bakınız

  • libretro - yukarıda belirtilen birçok algoritmayı gölgelendiriciler olarak uygular