Anti-aliasing (digitale beeldverwerking)
![Voorbeeld van Anti-Aliasing](http://upload.wikimedia.org/wikipedia/commons/thumb/2/22/Anti-aliasing_demo.svg/300px-Anti-aliasing_demo.svg.png)
Anti-aliasing zijn technieken die worden toegepast in digitale beeldverwerking om een bepaald soort artefact te verhelpen. Het is een vorm van smoothing. Een bepaalde vorm van anti-aliasing (om kartelranden te verminderen) wordt soms ook anti-kartelvorming genoemd.
Beeldverwerking in de computer
In diverse computerprogramma's (met name grafische applicaties en spellen) wordt anti-aliasing gebruikt om het zogenaamde karteleffect dat voorkomt bij het tekenen van figuren en tekst op het computerscherm te verminderen. Een schuin getekende lijn of ander afgerond figuur op een computerscherm wordt afgebeeld met vierkante pixels. De oplossing is om de pixels rond de rand van een afgerond figuur een kleur te geven die een – naar de positie gewogen – gemiddelde is van de kleur van het figuur en de achtergrondkleur, waardoor het karteleffect minder opvalt.
Vormen van anti-aliasing
De meest voorkomende vormen van anti-aliasing zijn:
- Supersampling (SSAA)
- Multisampling (MSAA)
- Morphologic (MLAA)
Supersampling
Supersampling is het eenvoudigste algoritme en geeft de hoogst mogelijke kwaliteit. Het is echter ook de traagste vorm. Bij supersampling wordt het beeld in een hoge resolutie gerasterd, waarna het verkleind wordt naar de gewenste resolutie. Bijvoorbeeld, een afbeelding van 800*600 pixels met 4*SSAA zal gerasterd worden als een afbeelding van 3200*2400 pixels. Hierna zal de gemiddelde kleur genomen worden van alle groepjes 4*4 pixels (soms ook 'tiles' genoemd). Het uiteindelijke aantal pixels na deze operatie zal dan de gevraagde 800*600 pixels zijn, en de randen zullen zachter ogen. Wegens de grote last op zowel buffer-geheugen als bandbreedte die SSAA met zich meebrengt wordt deze doorgaans vervangen door een lichter algoritme zoals bijvoorbeeld multisampling.
Multisampling
Multisampling is een snellere variant op supersampling, waarbij berekend wordt of het middelpunt van een pixel al dan niet binnen of buiten de te rasteren polygoon valt. De waarden van de pixels waarvan het middelpunt binnen de polygoon valt worden geïnterpoleerd, pixels waarvan het middelpunt buiten de polygoon vallen worden geëxtrapoleerd.
Morphologic
Morphologic AA is een relatief nieuwe methode waarbij niet tijdens het rasteren maar daarna de afbeelding wordt verwerkt. Het algoritme scant de afbeelding en registreert kartelingen binnen een bepaald oppervlak (tile). De grootte van het te scannen oppervlak is toonaangevend voor zowel de kwaliteit als de snelheid, die doorgaans omgekeerd evenredig zijn.
Textuur
Antialiasing filtert geen texturen, texturen zijn rasterformaten en dus op voorhand al gerasterd. In 3D-spellen zijn de algoritmen die hiervoor worden gebruikt doorgaans bilinear of bicubic filtering voor het vergroten en verkleinen van de textuur , en trilinear of anisotropic filtering voor het filteren in de diepte . Bij texturen waarbij een 1 bit-alphakanaal gebruikt wordt kan ook aliasing optreden, omdat full-screen multisampling alleen werkt op basis van polygonen. Dit is doorgaans het geval voor texturen van planten, waarbij de planten een scherpe rand hebben en er in dichtbegroeide gebieden een soort van ruis ontstaat tussen de bladeren. Dit kan worden opgelost door de texturen op voorhand apart te rasteren met anti-aliasing, deze techniek staat bekend als 'alpha to coverage'.
Subpixels
Omdat van een lcd-scherm de fysieke volgorde van subpixels bekend is (rood, groen en blauw) kan hiermee rekening gehouden worden. Moet dan een schuine lijn worden getekend, dan wordt een subpixel uit een naburige pixel ook opgelicht. Het menselijk oog kan de individuele subpixels niet onderscheiden en zal dus niet merken dat een schuine lijn die zwart is plaatselijk bestaat uit rode, blauwe of groene pixels. Deze techniek is ontworpen voor lcd-schermen. Door anti-aliasing toe te passen bij lcd-schermen worden de letters normaal gesproken iets vetter en donkerder. Ook wordt het contrast iets hoger.
Het besturingssysteem RISC OS bevat al sinds 1990 ingebouwde ondersteuning voor font anti-aliasing. In Windows XP is in te stellen dat alle letters in alle programma's met anti-kartelvorming met subpixels worden weergegeven. Deze techniek heet in Windows ClearType. In X11 wordt deze techniek subpixel rendering genoemd. Het macOS-systeem bezit sinds zijn introductie deze techniek.
Computerspellen
Computerspellen, die gebruikmaken van vectorgraphics, zoals van polygonen of curves, moeten hun vectoren rasteren voordat deze weergegeven kunnen worden als beeldpunten (pixels) op een computerscherm. Tijdens het rasteren van de vectoriële vormen zal de processor, doorgaans een CPU of een GPU, beslissen of een pixel binnen of buiten deze vorm valt.
Dit is waar het probleem van aliasing opduikt. Doordat er geen tussen-inwaarden zijn (binair) zal de rand altijd hard zijn. Op het scherm nemen we dit doorgaans waar als een gekartelde rand, aangezien pixels vierkant zijn. Anti-aliasing is de benaming voor algoritmes die trachten de rand te verzachten door de pixels die tegen de rand liggen te interpoleren, om op die manier het gekartelde effect te elimineren.
Voor 3D-computerspellen kunnen de instellingen voor anti-aliasing doorgaans ingesteld worden in het configuratiescherm van het spel zelf, of in de configuratie van de grafische stuurprogramma's.
Fotografie
Aliasing treedt in de fotografie op als moirépatroon. Deze aliasing wordt veroorzaakt door interferentie tussen fijne, zich herhalende details in het onderwerp en de verdeling van de subpixels in de beeldsensor. Anti-aliasing-maatregelen zijn:
- een optisch filter dat net voor de beeldsensor geplaatst wordt en een klein beetje onscherpte veroorzaakt.
- Een minder regelmatige verdeling van de kleuren over de subpixels. Een gangbare verdeling hethaalt zich elke twee pixels, er zijn sensoren die een patroon hebben dat zich pas na 6 pixels herhaalt.
- Het is mogelijk de sensor tijdens de belichting een beetje te laten vibreren. Het voordeel hiervan is dat de anti-aliasing functie eenvoudig aan en uitgeschakeld kan worden.
- Er kan ook voor gekozen worden helemaal geen anti-aliasing toe te passen. Dit resulteert over het algemeen in opnamen met een Moiré-fout die iets scherper lijken te zijn.