Bildskalning

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 29 december 2015; kontroller kräver 69 redigeringar .

Bildskalning ändrar  storlek på en digital bild samtidigt som bildförhållandet bibehålls . Skalning betyder både en ökning (" uppskalning " från engelsk uppskalning ) och en minskning (" nedskalning " från engelsk nedskalning ) av bildupplösningen . Det används ofta i datorgrafik , videobehandling , i synnerhet implementeras det på hårdvarunivå i tv -apparater och videospelare .   

Samtidigt, beroende på typen av grafik ( raster , vektor ), utförs skalning av olika algoritmer . Skalning av vektorbilder sker utan förlust av bildkvalitet, medan rasterbilder ökar, kan bildkvaliteten gå förlorad: betydande förvrängningar i geometrin hos små detaljer och uppkomsten av falska mönster på texturer är möjliga . Därför, när du skalar bitmappar, används specialiserade algoritmer för att jämna ut oönskade effekter.

Skalningsmetoder för allmänna ändamål

Den allmänna teorin om skalningsmetoder beskrivs i artikeln Resampling .

Om bilden har små kontrasterande detaljer är det viktigt att konvertera den till en linjär färgrymd - annars (om källan är i sRGB ), blir den resulterande "röran" av ljus och mörk i den reducerade bilden mörkare än nödvändigt.

Omsamplingsfilterfönstret är lika med storleken på käll- eller målpixeln - beroende på vilket som är störst [1] .

Många algoritmer behöver virtuella pixlar utanför rambufferten. Beroende på syftet med algoritmen kan du fysiskt göra bilden några pixlar större eller ta data från en annan plats med om-då- metoden . Data kan tas från kanterna (om vi har att göra med en färdig bild), ta tomma pixlar (om bilden är en sprite ), eller ta pixlar från andra sidan av bilden (om bilden ska upprepas sömlöst ) .

Öka

För att öka använder de vanligtvis inte omsamplingsfilter i en allmän form, utan ett specialfall - interpolation.

Det enklaste sättet att dubbla upplösningen är att kopiera den närmaste pixelmetoden , som ersätter varje pixel med fyra pixlar av samma färg, medan bilden, samtidigt som den behåller originalets detaljer, får en oönskad " stegeeffekt ". Samma metod kan användas för mer subtila ändringar i upplösningen, till exempel för en skala på 99% respektive 101%, ta bort eller duplicera var hundradels punkt.

Den bilinjära interpolationsmetoden ger viss bevarande av jämnheten i bildens konturer, men orsakar ibland oönskade effekter av utjämning av detaljer och genererar fortfarande en ganska märkbar "trappeffekt". En mer avancerad metod är att använda bikubisk interpolation .

Minska

För att reducera bilder används faltning med en eller annan kärnfunktion. Den närmaste grannmetoden motsvarar en smal rektangel, bilinär interpolation - en triangulär kärna ... Ofta, för att reducera foton, används Lanczos-filtret , vilket ger subjektiv skärpa, och ett rektangulärt filter ( boxfilter ), som gör bilden suddig.

Använda zoommetoder för att zooma ut och vice versa

En liten (upp till 0,5×) reduktion utförs ofta genom interpolation. Vid högre koefficienter börjar informationsförlusten - därav rekommendationen som uppstod under de första fotoredaktörernas dagar att minska i etapper, inte mer än två gånger åt gången.

Närmaste granne-interpolation och bilinjär interpolation, som de enklaste, används när realtidsskalning krävs i spel och grafikprogram. MIP-texturering bygger på att ta en kvalitativt reducerad textur av lämplig storlek - och sedan skala den genom interpolation med en faktor nära ett.

Kärnfalsmetoden som används vid minskning, vid ökning (om du ställer in rätt fönsterbredd - 1 originalpixel) skadar inte kvaliteten, men kan ge extra beräkningsarbete. Vissa kärnor (som Lanczos-filtret ) introducerar sina egna artefakter när de förstoras mer än två gånger.

Det rektangulära filtret används av moderna (2010-talet och senare) pixelspel för att öka bilden två gånger eller mer, inklusive med en icke-heltalsfaktor [2] .

Metoder för att skala pixelkonst

För att förstora bilder i små färger i låg upplösning är speciella algoritmer bäst lämpade , utvecklade för rastergrafik, som gör det möjligt att, med lätta förvrängningar i ritningsformernas noggrannhet, bevara och framhäva tydliga konturer och fina detaljer. Det finns också kantutjämningsalgoritmer som är lämpliga för att bearbeta fotografier och flerfärgsrasterbilder med en stegeffekt, grupperade under namnet "super-scale methods" ( eng.  supersampling ).

Jämförelse

Tabellen jämför skalningsalgoritmer gjorda med gratisprogrammet 2dimagefilter .

Algoritm Bild
(originalbilder)
Super-xBR 4x
Örn 3x
hq3x
Skala 3x
XBR 3x
SuperEagle
SuperSaI
SaI 2x
Skala 2x

Metoder för skalning av vektorgrafik

Vektorgrafik kan renderas i vilken upplösning du vill. Men det finns nyanser.

En separat uppgift är att skala en uppenbarligen vektor/ grafisk bild som renderats till ett raster och eventuellt förvrängd av komprimeringsalgoritmer (till exempel för att återställa tecknade serier ). Uppgiften är inte lika restriktiv som rasterspårning  - om till exempel en gradientfyllning detekteras behöver den inte konverteras till vektorprimitiv. För detta finns till exempel en neural nätverksalgoritm waifu2x .

Avstånd till synlig skillnad

De vetenskapliga data som används för att beräkna det mänskliga ögats upplösning är grunden för att beräkna det optimala betraktningsavståndet för olika skärmupplösningar. När du sitter på optimalt avstånd kommer du att kunna se alla detaljer på skärmen utan att stirra på enskilda pixlar. Det optimala avståndet beror på skärmstorleken. Ju större skärm, desto längre kan du sitta från den.

Om du sitter på optimalt avstånd kommer du att se alla detaljer i bilden. När du rör dig bort från skärmen kommer detaljer att gå förlorade och bilden kommer att se mjukare ut. Om du tittar på 4K-innehåll på en 4K -TV och du sitter på det optimala avståndet för en 1080p -TV , kommer du att se en 4K-bild på skärmen, men dina ögon kommer att se 1080p.

Använd i spelkonsolemulatorer

Tack vare den kraftfulla hårdvarukomponenten i moderna datorer är det möjligt att använda bildskalningsalgoritmer i realtid för videospel. Mycket optimerade algoritmer ger en tydlig och detaljerad bild med minimal oskärpa, samtidigt som de inte kräver betydande systemresurser. De används i många spelkonsolemulatorer som HqMAME , DOSBox och ScummVM .

Bildskalningsalgoritmer används i kommersiella Xbox Live , Virtual Console och PlayStation Network -emulatorer och låter spelare, fans av lågupplösta spel från 80- och 90-talen se sina favoritspel med acceptabel bildkvalitet på HD-skärmar . Sådana algoritmer används i Sonics Ultimate Genesis Collection , Castlevania: The Dracula X Chronicles , Castlevania: Symphony of the Night och Akumajō Dracula X Chi no Rondo .

Bildskalningsproblem

När du skalar bilder är det vanligaste problemet "jagged"-effekten, som elimineras av anti- aliasing- algoritmer . I det här fallet får pixlar intill bildens kantpixel ett mellanvärde mellan bildfärgen och bakgrundsfärgen, vilket skapar en gradient och gör gränsen suddig.

Bildskalning med kantutjämning beror på vilken färgmodell som används i den. Standardskärmmodellen är sRGB med en styckvis polynomsvarskurva, som ungefärligen approximerar en effektkurva . Men de flesta grafikbibliotek behandlar sRGB som ett linjärt utrymme. Problemet är mindre märkbart för foton och mer för ritningar.

Det finns en enkel algoritm för att öka pixelkonst (”avancerad närmaste granne”) med en bråkfaktor på 2 eller mer, men det finns ingen liknande algoritm med en faktor på 1 till 2. Därför försöker moderna (2010-tals) spel med pixelgrafik att göra minst två gånger upplösningen mindre än målmaskinen [2] .

Historiker är allvarligt bekymrade över neurala nätverksalgoritmer som automatiskt kommer med detaljer – eftersom de kommer på något som inte fanns i originalbilden. Och det kan visa sig att den populäraste bilden blir en bild med tekniskt högre kvalitet – men inte autentisk. Eller efter att ha kört genom en liknande tjänst, kommer ägaren att ta bort originalet av "låg kvalitet" [3] .

Se även

Anteckningar

  1. Grunderna för omsampling av bilder . Hämtad 11 maj 2020. Arkiverad från originalet 23 januari 2022.
  2. 1 2 Gamasutra: Lars Doucets blogg - Gör en HD-remake på rätt sätt . Hämtad 3 mars 2020. Arkiverad från originalet 3 mars 2020.
  3. När jag hör orden "det neurala nätverket återställt" klättrar jag för att kontrollera säkerhetskopior / Sudo Null IT News . Hämtad 3 mars 2020. Arkiverad från originalet 2 mars 2020.

Litteratur

Länkar

inklusive Hqnx-familjen, SaI, Eagle, EPX, XBR, XBRz, Lanczos, etc.