dinsdag 11 november 2008

Vorderingen implementatie

Na de presentatie van vorige week (de slides zijn hier te vinden) ben ik verder gegaan met de implementatie van mijn ray tracer.
Ik heb nog verschillende problemen met de representatie in het frequentie domein. Het beeld wordt opgedeeld in blokken van 8x8 pixels en wordt voorgesteld in het frequentie domein adhv 64 cosinus termen. Wanneer er te weinig samples in een blok genomen worden draait het algoritme in de soep wanneer de cosinus termen geëvalueerd worden. In de paper wordt voorgesteld om het aantal cosinus termen te verhogen telkens er 2 à 3 samples bijkomen. Ik heb die extra moeilijkheid omzeild door geen omzetting te doen naar het frequentie domein voordat ik 128 samples heb genomen per 8x8 blok. Wat betekent dat er genoeg informatie is om het blokje adhv 64 cosinus termen voor te stellen. Dit komt overeen met 2 samples per pixel en heeft als voordeel dat er geen blokken zullen zijn die te weinig samples krijgen.
Doordat ik een vast sample patroon per blok gebruik kan ik de matrices die nodig zijn om de transformatie naar het frequentie domein uit te voeren, voor elk blok hergebruiken. Voorlopig bereken ik 1000 matrices in een pre-processing stap. Dit heeft als nadeel dat er maximaal 1128 samples per 8x8 pixels kunnen genomen worden maar wat een groter nadeel is het geheugen gebruik: 1000*64*64 = 4 096 000 doubles die in het geheugen moeten worden opgeslagen enkel voor de transformatie naar frequentiedomein.

Geen opmerkingen: