maandag 4 mei 2009

Combinatie DCT en Monte Carlo

Een tweede mogelijkheid (naast subpixelsampling en het verschoven grid) om ervoor te zorgen dat minder artefacten gemist worden bij het DCT algoritme bestaat erin om in verschillende fases te werken:

1. Eerst wordt voor elke pixel een aantal samples genomen
2. Daarna wordt adhv de DCT per blokje van 8x8 beslist of er meer samples genomen
3. Neem opnieuw voor elke pixel een aantal samples
enz...

De resultaten van deze methode:

vrijdag 1 mei 2009

Oplossing geen convergentie naar referentieprentje

De presentatie die ik gegeven heb tijdens de Paasvakantie met de resultaten tot dan is hier te vinden. Het probleem was dat de methode die gebruik maakt van de DCT, randeffecten mistte. Een illustratie van die randgevallen is hier te vinden.
Er zijn twee mogelijke oplossingen voor dat probleem.
* Enerzijds is het mogelijk om het beeld op te delen ipv op pixel niveau in subpixel niveau. Dat heeft als voordeel dat een blokje van 8x8 dan niet overeenkomt met 8x8 pixels maar op een kleiner stuk van het beeld. Zo kan het aantal pixels dat volledig gemist wordt drastisch verkleind worden. Het probleem van het missen van de artefacten blijft natuurlijk bestaan. De verwachting is dus dat er nog steeds geen convergentie zal zijn naar het referentie beeldje maar dat er toch uiteindelijk een kleinere fout behaald wordt.
* Een betere oplossing bestaat erin om met twee grids te werken: één op het gewone niveau en één grid 4 pixels verschoven in de diagonale richting. Zo is het niet meer mogelijk dat een artefact een randgeval is elk blokje.
De resultaten van de theepot met puntlichtbron zijn weergegeven in onderstaande grafiek:



We zien dat zoals verwacht beide methodes een beter resultaat geven. De methode van de subpixel bemonstering volgt in eerste instantie het traject van standaard monte carlo. Dit is omdat in elk subpixel segment monsters moeten genomen alvorens een schatting van de DCT kan worden berekend. Het samplen van elk subpixelsegment is net wat gestratifieerde bemonstering doet dus is het normaal dat die twee grafieken bij elkaar aansluiten.