A képméretezés a digitális kép átméretezése a képarány megtartása mellett . A méretezés a képfelbontás növelését (" felskálázás " az angol felskálázásból ) és csökkenést (" downscaling " az angol leskálázásból ) egyaránt jelenti . Széles körben használják a számítógépes grafikában , a videófeldolgozásban , különösen a televíziókban és a videolejátszókban hardver szinten valósítják meg .
Ugyanakkor a grafika típusától ( raszter , vektor ) függően a méretezést különböző algoritmusok végzik . A vektoros képek méretezése a képminőség romlása nélkül történik, miközben a raszteres képek növelésével a képminőség elveszhet: jelentős torzulások léphetnek fel az apró részletek geometriájában, és hamis minták jelenhetnek meg a textúrákon . Ezért a bitképek méretezésekor speciális algoritmusokat használnak a nem kívánt hatások kisimítására.
A skálázási módszerek általános elméletét az Újramintavételezés című cikk ismerteti .
Ha a kép kis kontrasztos részleteket tartalmaz, fontos lineáris színtérré alakítani - ellenkező esetben (ha a forrás sRGB -ben van ), a kicsinyített képen a világos és sötét „zavar” a szükségesnél sötétebb lesz.
Az újramintavételezési szűrőablak megegyezik a forrás vagy a cél pixel méretével – amelyik nagyobb [1] .
Sok algoritmusnak szüksége van a keretpufferen kívüli virtuális pixelekre . Az algoritmus céljától függően fizikailag néhány képponttal nagyobbá teheti a képet, vagy a ha-akkor módszerrel adatokat vehet át egy másik helyről . Adatokat vehetünk a szélekről (ha kész képről van szó), üres pixeleket vehetünk (ha a kép sprite ), vagy a kép másik oldaláról (ha a kép zökkenőmentesen ismétlődik ) .
A növelés érdekében általában nem általános formában újramintavételező szűrőket használnak, hanem speciális esetet - interpolációt.
A felbontás megduplázásának legegyszerűbb módja a legközelebbi pixel módszer másolása , amely minden pixelt négy azonos színű pixelre cserél , miközben a kép az eredeti részleteit megtartva nem kívánt " létraeffektust " kap. Ugyanez a módszer használható a felbontás finomabb változtatásaihoz is, például 99%-os vagy 101%-os skála esetén a pont minden századának eltávolítása vagy duplikálása.
A bilineáris interpolációs módszer némileg megőrzi a kép kontúrjainak simaságát, de néha nemkívánatos hatásokat okoz a simító részletekben, és mégis meglehetősen észrevehető "lépcsőházhatást" generál. Egy fejlettebb módszer a bikubikus interpoláció használata .
A képek csökkentésére a konvolúciót használják egyik vagy másik kernelfüggvénnyel. A legközelebbi szomszéd módszer egy keskeny téglalapnak, bilineáris interpolációnak felel meg - háromszög alakú kernelnek... A fényképek kicsinyítéséhez gyakran a Lanczos szűrőt használják , amely szubjektív élességet ad, és egy téglalap alakú szűrőt ( box filter ), amely elmosja a képet.
Egy kis (legfeljebb 0,5-szeres) csökkentést gyakran interpolációval hajtanak végre. Magasabb együtthatóknál az információvesztés megkezdődik – ezért az első fotószerkesztők idejében felmerült az az ajánlás, hogy fokozatosan csökkentsék, egyszerre legfeljebb kétszer.
A legközelebbi szomszéd interpolációja és a bilineáris interpoláció, mint a legegyszerűbb, akkor használatos, amikor valós idejű skálázásra van szükség a játékokban és a grafikus szoftverekben. A MIP- textúra egy megfelelő méretű, minőségileg redukált textúra vételén alapszik, majd interpolációval skálázzuk egy közeli tényezővel.
A csökkentésnél, növelésnél alkalmazott kernel konvolúciós módszer (ha megfelelő ablakszélességet állít be - 1 eredeti pixel) nem rontja a minőséget, de plusz számítási munkát adhat. Egyes kernelek (például a Lanczos-szűrő ) kétszeresnél nagyobb nagyításkor saját termékeiket vezetik be.
A téglalap alakú szűrőt a modern (2010-es és későbbi) pixeles játékok használják a kép kétszeres vagy többszöri növelésére, beleértve a nem egész számot is [2] .
Kis színű képek kis felbontású nagyításához a rasztergrafikához kifejlesztett speciális algoritmusok a legalkalmasabbak , amelyek lehetővé teszik az alakzatok rajzolásának enyhe torzításával a tiszta kontúrok és apró részletek megőrzését és kiemelését. Fényképek és létraeffektusú többszínű raszterképek feldolgozására alkalmas élsimító algoritmusok is léteznek , amelyeket "szuper-skálás módszerek" ( eng. supersampling ) néven csoportosítanak.
A táblázat összehasonlítja az ingyenes 2dimagefilterrel készült skálázási algoritmusokat .
Algoritmus | Kép |
---|---|
(eredeti képek) | |
Super-xBR 4x | |
Eagle 3x | |
hq3x | |
Méret 3x | |
XBR 3x | |
Super Eagle | |
SuperSaI | |
SaI 2x | |
Mérleg 2x |
A vektorgrafika bármilyen felbontásban renderelhető. De vannak árnyalatok.
Egy külön feladat egy nyilvánvalóan vektoros/ grafikus kép méretezése raszteresre, és esetleg tömörítési algoritmusok által torzított (például rajzfilmek visszaállításához ). A feladat nem annyira korlátozó, mint a raszteres nyomkövetés – ha például gradiens kitöltést észlel, akkor azt nem kell vektorprimitívekké alakítani. Erre például van egy neurális hálózati algoritmus, a waifu2x .
Az emberi szem felbontásának kiszámításához használt tudományos adatok adják az alapját a különböző képernyőfelbontások optimális látótávolságának kiszámításához. Ha az optimális távolságban ül, minden részletet láthat a képernyőn anélkül, hogy az egyes pixeleket bámulná. Az optimális távolság a képernyő méretétől függ. Minél nagyobb a képernyő, annál távolabb ülhet tőle.
Ha az optimális távolságban ül, látni fogja a kép minden részletét. Ahogy távolodik a képernyőtől, a részletek elvesznek, és a kép lágyabbnak tűnik. Ha 4K-s tartalmat néz egy 4K -s tévén, és egy 1080p -s tévéhez optimális távolságban ül , akkor a képernyőn 4K-s kép jelenik meg, de a szeme 1080p-t fog látni.
A modern számítógépek nagy teljesítményű hardverkomponensének köszönhetően valós idejű képméretezési algoritmusok használhatók videojátékokhoz. A nagymértékben optimalizált algoritmusok tiszta és részletes képet biztosítanak minimális elmosódási hatással, miközben nem igényelnek jelentős rendszererőforrást. Számos játékkonzol-emulátorban használják , mint például a HqMAME , a DOSBox és a ScummVM .
A képméretezési algoritmusokat a kereskedelmi Xbox Live , Virtual Console és PlayStation Network emulátorokban használják , és lehetővé teszik a játékosok, a 80-as és 90-es évek kis felbontású játékainak rajongói számára, hogy kedvenc játékaikat elfogadható képminőségben tekinthessék meg HD képernyőkön . Ilyen algoritmusokat használ a Sonic's Ultimate Genesis Collection , Castlevania: The Dracula X Chronicles , Castlevania: Symphony of the Night és Akumajō Dracula X Chi no Rondo .
A képek méretezésekor a leggyakoribb probléma a "szaggatott" hatás, amelyet az élsimító algoritmusok küszöbölnek ki . Ebben az esetben a kép szegélypixelével szomszédos pixelek köztes értéket vesznek fel a kép színe és a háttérszín között, átmenetet hozva létre, és elmossák a szegélyt.
A képméretezés élsimítással a benne alkalmazott színmodelltől függ . A szabványos képernyőmodell az sRGB darabonkénti polinomiális válaszgörbével, amely jól megközelíti a teljesítménygörbét . A legtöbb grafikus könyvtár azonban az sRGB-t lineáris térként kezeli. A probléma kevésbé észrevehető a fényképeknél, és inkább a rajzoknál.
Létezik egy egyszerű algoritmus a pixelművészet növelésére („haladó legközelebbi szomszéd”) 2-es vagy annál nagyobb törttényezővel, de nincs hasonló algoritmus 1-2 tényezővel. Ezért a modern (2010-es évek) pixelgrafikával rendelkező játékok megpróbálják hogy a felbontás legalább kétszer kisebb legyen, mint a célgép [2] .
A történészeket komolyan aggasztják azok a neurális hálózati algoritmusok, amelyek automatikusan előállnak a részletekkel – mert valami olyasmivel állnak elő, ami nem volt az eredeti képen. És kiderülhet, hogy a legnépszerűbb kép egy technikailag jobb minőségű kép lesz – de nem hiteles. Vagy egy hasonló szolgáltatás futtatása után a tulajdonos törli az "rossz minőségű" eredetit [3] .
köztük Hqnx-család, SaI, Eagle, EPX, XBR, XBRz, Lanczos stb.