A pixel grafikai skálázó algoritmusok digitális képméretező algoritmusok , amelyeket kifejezetten az alacsony felbontású grafikák minőségének javítására terveztek . A hagyományos skálázási algoritmusokkal ellentétben kevésbé homályos képet adnak.
Két szabványos képméretezési algoritmus létezik, a bilineáris és a bikubikus interpoláció . Mivel az aktuális pixel színkoordinátáit általában négy szomszéd interpolálásával számítják ki, a feldolgozott kép homályos. Bár ez elfogadható a színes képek esetében, az interpoláció használata általában csökkenti a kontrasztot (élélesség), ezért ez a módszer gyenge eredményeket ad a paletta indexelt képeken.
A legközelebbi szomszéd módszer megőrzi az éles éleket, de álneveket vezet be a képbe (különösen az átlós vonalak négyzetek "létrájához" hasonlítanak). Így a pixelművészet kinagyítására szolgáló ideális algoritmusnak interpolálnia kell a folytonos tónusú területeket, meg kell őriznie a vízszintes és függőleges vonalak élességét, valamint simítania (antialias) átlós vonalakat és görbéket. A probléma megoldására számos kísérlet történt.
Mivel ezeknek az algoritmusoknak a fő alkalmazási területe a régi konzol- és DOS-játékok emulátorai, sokuk dinamikusan változó kép valós időben történő megjelenítésére szolgál (kellően alacsony bemeneti képfelbontás mellett).
Sok algoritmus csak egész szám nagyításával működik: 2x, 3x és 4x.
Az EPX ("Eric's Pixel eXpansion") egy algoritmus, amelyet Eric Johnston, a LucasArts munkatársa fejlesztett ki 1992 körül [1] , miközben az SCUMM motort az IBM PC-ről (320×200 felbontás, 256 szín) a korai Macintosh színes számítógépekre vitte át . körülbelül kétszer olyan magas volt [2] .
Az algoritmus így működik:
A --\ 1 2 CPB --/ 3 4 D Ha C==A => 1=A Ha A==B => 2=B Ha B==D => 4=D Ha D==C => 3=C Ha 3 vagy több pixel A, B, C, D pontból megegyezik: 1=P, 2=P, 3=P, 4=PEnnek az algoritmusnak a későbbi implementációi (mint például a 2001 körül kifejlesztett AdvMAME2x és Scale2x) eltérő (hatékonyabb), de funkcionálisan azonos megvalósítással rendelkeznek:
A --\ 1 2 CPB --/ 3 4 D 1=P; 2=P; 3=P; 4=P; Ha C==A és C!=D és A!=B => 1=A Ha A==B és A!=C és B!=D => 2=B Ha B==D és B!=A és D!=C => 4=D Ha D==C és D!=B és C!=A => 3=CAz AdvMAME4x/Scale4x csak kétszer alkalmazott EPX.
Az AdvMAME3x/Scale3x algoritmus nem ugyanaz, mint az EPX, de nagyon hasonlítanak egymásra:
ABC --\ 1 2 3 DEF > 4 5 6 GHI --/ 7 8 9 1=E; 2=E; 3=E; 4=E; 5=E; 6=E; 7=E; 8=E; 9=E; Ha D==B és D!=H és B!=F => 1=D Ha (D==B és D!=H és B!=F és E!=C) vagy (B==F és B!=D és F!=H és E!=A) => 2=B Ha B==F és B!=D és F!=H => 3=F Ha (H==D és H!=F és D!=B és E!=A) vagy (D==B és D!=H és B!=F és E!=G) => 4=D 5=E Ha (B==F és B!=D és F!=H és E!=I) vagy (F==H és F!=B és H!=D és E!=C) => 6=F Ha H==D és H!=F és D!=B => 7=D Ha (F==H és F!=B és H!=D és E!=G) vagy (H==D és H!=F és D!=B és E!=I) => 8=H Ha F==H és F!=B és H!=D => 9=FAz Eagle a következőképpen működik: minden bemeneti pixelhez 4 kimeneti pixel generálódik, kezdetben mind a négy színe az aktuális szkennelt pixel színére van állítva (pontosan ugyanaz, mint a legközelebbi szomszédnál), majd a pixelek felülről ill. a bal oldaliakat szkenneljük, ha azonos színűek (mindhárom) , majd a bal felső képpontot ezzel a színnel festjük, hasonló műveleteket hajtunk végre mind a négy pixelnél, és továbblépünk [3]
.
Először: |Azután: . . . --\ CC |STU --\ 1 2 . C. --/ CC |VCW --/ 3 4 . . . |XYZ | Ha V==S==T => 1=S | Ha T==U==W => 2=U | Ha V==X==Y => 3=X | Ha W==Z==Y => 4=ZÍgy az algoritmus alkalmazásakor egyetlen fekete képpont fehér alapon feloldódik. Ezt a hibát kijavították a 2xSaI és a HQ3x algoritmusokban.
A 2xSaI (2x Scale and Interpolation) az Eagle algoritmus továbbfejlesztése. Derek Liauw Kie Fa, más néven Kreed fejlesztette ki, eredetileg emulátorokban való használatra, ahol még mindig meglehetősen népszerű algoritmus. Számos népszerű emulátor, például a ZSNES , a Jnes , a DOSBox és a VisualBoyAdvance támogatja ezt a kimeneti algoritmust.
A Kreed az [1] algoritmus forráskódjait a GPL licenc alatt tette közzé , azaz a licencben meghatározott célra szabadon felhasználható. Az algoritmus nem GPL termékekben való használatához a fejlesztőnek át kell írnia azt a Kreed által írt kód használata nélkül.
A kissé módosított megvalósítások neve „Super 2xSaI”, „2xSaI” és „Super Eagle”.
A Kreed által írt Super Eagle hasonló a 2XSaI-hez, de a kimenet a pixelszínek erősebb keveréke (blending).
A Super 2xSaI-t a Kreed írta, egy szűrő a grafika simítására, de erősebb keveréssel, mint a Super Eagle.
Maxim Stepin kidolgozta a hq2x, hq3x és hq4x algoritmusokat a 2:1, 3:1 és 4:1 arányú nagyításhoz. Az egyes pixelek színét nyolc szomszéddal hasonlítjuk össze, a szomszédokat közelinek és távolinak jelöljük, majd egy előre generált táblázat segítségével megtaláljuk a 4, 9 vagy 16 kimeneti pixel mindegyikéhez a szükséges értékarányt. A hq3x algoritmus tökéletesen kisimítja a ±1:2, ±1:1 és ±2:1 meredekségű átlós vonalakat (feltéve, hogy az algoritmus bemenetén nincs élsimítás ); a különböző meredekségű vonalak szaggatott vonalakként jelennek meg a fenti átlókból. A meredek ívek jól kisimulnak. A 2xSaI-től eltérően az élsimítást a kimenetre alkalmazzák [4] .
A hq n x eredetileg a Super Nintendo emulátorhoz, a ZSNES -hez készült .
Az algoritmust 2011-ben fejlesztették ki, és a SIGGRAPH 2011 -ben mutatták be [5] . A kevés színnel rendelkező pixelképet vektoros formává alakítja. Ha azonban a kép élsimítással rendelkezik, az eredmény rosszabb.
Megfelelően gyors számítógépeken ezek az algoritmusok lehetővé teszik egy méretezett kép kimenetének megvalósítását, ami a sebesség szempontjából elfogadható valós idejű alkalmazásokhoz, különösen számítógépes játékokhoz. A rendkívül optimalizált algoritmusok tiszta és éles képet adnak minimális elmosódással. A pixel grafikus skálázási algoritmusokat különféle emulátorokhoz, 2D-s játékmotorokhoz és remastered játékmotorokhoz, például az AdvanceMAME -hoz , a DOSBox -hoz és a ScummVM -hez implementálták . Nagy elismerésben részesítették őket a játékosok, akik elkezdték a 80-as és 90-es években írt játékokat újrakészíteni. Ezeket a szűrőket jelenleg (2013) a kereskedelmi Xbox Live , Virtual Console és PSN emulátorokban használják, hogy a klasszikus alacsony felbontású játékok jobban nézzenek ki a nagy felbontású kijelzőkön. Ilyen játékok a Sonic's Ultimate Genesis Collection , a Castlevania: The Dracula X Chronicles , a Castlevania: Symphony of the Night és az Akumajō Dracula X Chi no Rondo .