Ontwerp van wavelettransformaties op FPGA

Maat: px
Weergave met pagina beginnen:

Download "Ontwerp van wavelettransformaties op FPGA"

Transcriptie

1 Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Ontwerp van wavelettransformaties op FPGA Het ontwerpen van temporele en spatiale wavelettransformaties op FPGA als onderdeel van een waveletgebaseerde video-encoder door Inge Doms Promotor: prof. dr. ir. D. Stroobandt Thesisbegeleider: dr. ir. M. Christiaens Afstudeerwerk ingediend tot het behalen van de academische graad van burgerlijk elektrotechnisch ingenieur. Academiejaar

2 Woord vooraf Aan het begin van deze scriptie zou ik graag enkele mensen bedanken. Zonder hen zou ik het niet gekund hebben. Allereerst wil ik mijn promotor, prof. dr. ir. D. Stroobandt bedanken omdat hij me de mogelijkheid gegeven heeft om aan dit onderwerp te werken. Zonder begeleiding zou er echter ook geen thesis zijn. Officieel was alleen Mark Christiaens begeleider. In de praktijk heeft hij heel wat hulp gekregen van Hendrik Eeckhaut, Benjamin Schrauwen, Philippe Faes en Harald Devos. Vooral Harald en Philippe hebben vele kleine en ook minder kleine struikelblokken uit de weg geholpen. Ik ben heel erg blij dat we met z n drieën aan de video-encoder gewerkt hebben. Van Michiel heb ik heel wat hulp gekregen bij het programmeren. Peter heeft bijgedragen bij het tot stand komen van dit boek, maar leek er vooral behoefte aan te hebben me te ontspannen. Het is hem gelukt. En da s ook belangrijk. Ook mijn ouders verdienen een bloemetje. Van hen heb ik de kans gekregen om te studeren. Ze hebben me al die tijd niet zo vaak gezien... toch hebben ze me altijd in de watten gelegd! Als laatste wil ik Christophe bedanken. Voor een project hebben we samen een ontwerp gemaakt voor de implementatie van een wavelettransformatie. Veel belangrijker voor mij is dat hij me steunt en motiveert en... Dankjewel Inge i

3 Toelating tot bruikleen De auteur geeft de toelating deze scriptie voor consultatie beschikbaar te stellen en delen van de scriptie te kopiëren voor persoonlijk gebruik. Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze scriptie. ii

4 Het ontwerpen van temporele en spatiale wavelettransformaties op FPGA als onderdeel van een waveletgebaseerde video-encoder door Inge Doms Afstudeerwerk ingediend tot het behalen van de graad van burgerlijk elektrotechnisch ingenieur Academiejaar Universiteit Gent Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Promotor: prof. dr. ir. D. Stroobandt Thesisbegeleider: dr. ir. M. Christiaens Samenvatting In dit werk worden twee verschillende hardware implementaties van de tweedimensionale wavelettransformatie besproken. Er wordt ook een vergelijkende studie gedaan. iii

5 Inhoudsopgave 1 Inleiding Probleemstelling Opbouw van de codec Ontwerpstraject Wavelettransformatie Continue wavelettransformatie Discrete wavelettransformatie Tweedimensionale wavelettransformatie Hardware Quartus II FPGA RAM-geheugen DSP-blokken DDR SDRAM Probleemanalyse Nauwkeurigheid Formalisering Hardware-implementaties Rij-kolomgebaseerde transformatie Implementatie Benodigde hardware Snelheid iv

6 5.1.4 Optimalisaties Rijgebaseerde transformatie Niveau per niveau Diepte-eerst Blokgebaseerde wavelettransformatie Implementatie Benodigde hardware Snelheid Optimalisaties Besluit 51 A CD 53 Bibliografie 58 v

7 Hoofdstuk 1 Inleiding 1.1 Probleemstelling Dit werk maakt deel uit van het RESUME-project 1. Dit project is een samenwerking tussen meerdere universiteiten. Deze willen een prototype bouwen voor een schaalbare, herconfigureerbare videocodec. Het doel is de codering in ware-tijd te kunnen uitvoeren. Figuur 1.1: Schema van de codec Voor de encoder bestaat de input uit digitale videobeelden. Het formaat van deze beelden ligt niet vast, maar er is wel een beperking. De uitgaande bitstroom is een gecomprimeerde versie hiervan. 1 RESUME: Reconfigurable Embedded Systems for Use in scalable Multimedia Environments, meer informatie is te vinden op de website: 1

8 Digitale Componenten en Schakelingen II Projectverslag - Bewegingsschatting Peter Bertels 3 januari Opbouw van de codec Videocodering bestaat uit drie onderdelen, namelijk bewegingsschatting (motion estimation, 1 Probleemanalyse ME), wavelettransformatie (discrete wavelettransform, DWT) en entropieëncodering (entropy coding, EC). Bij de decodering worden de inverse stappen toegepast: 1.1 Bewegingsschatting entropiedecodering (ED), inverse wavelettransformatie (IDWT) en bewegingscompensatie (MC). Zie figuur 1.1. Opeenvolgende beelden in een film verschillen doorgaans maar weinig van elkaar. Deze eigenschap maakt het mogelijk om beelden op te bouwen uit naburige beelden. Dit is dan ook wat Bewegingsschatting De bewegingsschatting behandelt groepen van zestien beelden (GOP: gereconstrueerd group ofmet pictures). behulp van In aanwijzingen de eerste stap die tijdens worden de de codering even opgeslagen beelden ge- in vele hedendaagse video-decoders gebeurt. Uit de referentiebeelden worden de tussenliggende beelden werden. bruikt Figuur als referentiebeeld. 1 toont een concreet Devoorbeeld. andere beelden worden opgebouwd uit deelblokken referentie A huidig beeld referentie B Figuur 1: Concreet Figuur voorbeeld 1.2: Bewegingsschatting van de reconstructie van een beeld Het beeld is opgesplitst in macroblokken en wordt blok per blok opgebouwd. De bewegingsvectoren geven aan welk deel uit het referentiebeeld gebruikt moet worden voor de reconstructie. Op die manier wordt een goede schatting gemaakt van het huidig beeld. Bij de laatste stap in de decodering wordt het foutbeeld, dat ook tijdens de codering berekend werd, bij deze schatting opgeteld. van de referentiebeelden. Het verschil tussen het oorspronkelijke beeld en het beeld dat samengesteld is uit de blokken wordt opgeslagen in foutbeelden. Bij elk van deze foutbeelden hoort ook een verzameling bewegingsvectoren, motion vectors (MV), waarin opgeslagen is uit welke deelblokken van omliggende beelden dit beeld opgebouwd moet worden. Vervolgens worden van de acht referentiebeelden opnieuw de even beelden als referentie gebruikt om de andere beelden op te bouwen. Deze werkwijze wordt toegepast tot er nog slechts één In veel gevallen wordt een volledig macroblok in een keer gereconstrueerd, maar af en toe wordt een macroblok nog verder opgesplitst in vier submacroblokken die afzonderlijk worden behandeld. referentie A huidig beeld referentie B Tijdens referentiebeeld de codering van indelke beeldstroom GOP overblijft. moet voor elk macroblok in het huidig beeld een goede schatting gevonden worden in de naburige referentiebeelden. Ofwel met één bewegingsvector Omdat bij video-beelden de opeenvolgende beelden dikwijls goed op elkaar lijken, zullen de pixelwaarden in de foutbeelden meestal kleiner zijn dan deze 1 in het oorspronkelijke beeld, zodat er minder beduidende bits zijn. De pixelwaarden in deze foutbeelden kunnen zowel positief als negatief zijn. De inverse stap bouwt aan de hand van de vectoren en de foutbeelden de oorspronkelijke beelden terug op. De thesis van Peter Bertels [6] bespreekt uitvoerig de bewegingsschatter die in de videocodec gebruikt wordt. Wavelettransformatie Het referentiebeeld en de foutbeelden moeten vervolgens een wavelettransformatie ondergaan. Hierbij worden de laag- en de hoogdoorlaatcomponenten van de beelden gescheiden. Bij beelden die effen vlakken 2

9 bevatten zal de hoogdoorlaatcomponent beperkt zijn. Alleen bij de overgangen in het beeld is er ook een belangrijke hoogdoorlaatcomponent. De meestal kleine hoogdoorlaatcomponent zal op de meeste plaatsten dus ook weinig beduidende bits hebben. Deze kunnen achteraf compacter voorgesteld worden. Het resultaat zijn de waveletcoëfficiënten van het beeld. De implementatie van de wavelettransformatie is het onderwerp van dit werk. Entropieëncodering Na de wavelettransformatie moeten de beelden nog twee stappen doorlopen: de quadtree (QT) en de arithmetische encodering. Hierbij worden de waveletcoëfficiënten opgesplitst in bitvlakken die afzonderlijk gecomprimeerd worden. Michiel D Haenen nam de quad-tree en de arithmetische encodering [9] voor zijn rekening. De hier beschreven videocodec moet op een FPGA kunnen werken. Hiervoor werd de precieze werking ervan eerst beschreven in software. Dit werd gedaan door mensen van de VUB die ook meewerken aan het RESUME-project. Het werk dat hier beschreven wordt, betreft de omzetting van de code in software naar een werkende implementatie op een FPGA, meer bepaald een ontwikkelbord van Altera. Meer informatie hierover is te vinden in hoofdstuk drie en in [8]. Om de codec zo snel mogelijk te kunnen maken, worden in de volgende hoofdstukken verschillende implementaties van de wavelettransformatie in hardware vergeleken. 1.3 Ontwerpstraject Om tot een hardware-implementatie te komen, worden verschillende stappen in het ontwerpstraject doorlopen. Dit ontwerpstraject staat beschreven in de cursus die hoort bij de vakken digitale componenten en schakelingen I en II ([14]). In hoofdstuk 2 wordt de wavelettransformatie beschreven. Er wordt vooral dieper ingegaan op de juiste werking van de tweedimensionale wavelettransformatie die verder gebruikt zal worden. In hoofdstuk 3 komen de eigenschappen van het ontwikkelbord aan bod. Hoofdstuk 4 gaat over de algemene eigenschappen van hardware-implementaties. In hoofdstuk 5 worden twee mogelijke hardware-implementaties verder uitgewerkt. De grote stappen hierbij zijn: SystemC De hoogniveaubeschrijving gebeurt in SystemC. Het grote voordeel, in vergelijking met VHDL, is dat de oorspronkelijke code in C++ gemakkelijk kan samenwerken met delen die al omgezet zijn in een hardware-omschrijving. Dit maakt testen van de modules eenvoudig. De hoogniveaubeschrijving wordt stap voor stap verfijnd tot op R/T-niveau. 3

10 VHDL Om het geheel op de FPGA te kunnen overzetten, is een beschrijving in VHDL nodig. De overgang van SystemC naar VHDL gebeurt met de CoCentric SystemC-compiler van Synopsys. FPGA Via Quartus II kan het design op de FPGA gebracht worden. Met dit programma kunnen ook de mogelijke kloksnelheid en het gebruik van hardware nagegaan worden. Quartus II verzorgt de plaatsing en routering op de FPGA en zorgt ook voor de synthese. In het laatste hoofdstuk worden de implementaties vergeleken wat betreft snelheid, aantal geheugentoegangen, aantal bewerkingen en gebruik van hardware. De bestanden met de code die in het kader van dit werk gemaakt zijn, bevinden zich in bijlage A. 4

11 Hoofdstuk 2 Wavelettransformatie Een aantal nieuwe compressiestandaarden danken hun efficiëntie voor een groot deel aan de wavelettransformatie voor de codering van beelden en patronen. De beelden worden voor de eigenlijke compressie getransformeerd. Hiervoor wordt de wavelettransformatie gebruikt. Dit wordt gedaan om de data achteraf compacter te kunnen voorstellen. De gebruikte transformatie is beschikbaar in C++-code, geschreven aan de VUB (zie dwt2 comp.cpp en resource functions.cpp in bijlage A). De term wavelets is geïntroduceerd in de jaren 80. De wavelettheorie is het resultaat van ontwikelingen in verschillende onderzoeksdomeinen zoals fysica, signaalen beeldanalyse en wiskunde. Heel wat onderzoek naar wavelets resulteerde in een uitgebreide wiskundige theorie hieomtrent. Belangrijke vooruitgang werd geboekt dankzij I. Daubechies en S. Mallat. In [13] bevindt zich een uitgebreide wiskundige beschrijving van de theorie. Er werd gezocht naar functies die compact zijn zowel in de tijd als in de frequentie. Hierna volgt een beschrijving van het concept wavelets, waarbij vooral zal gekeken worden naar de toepassing die in deze thesis van belang is namelijk beeldcompressie. 2.1 Continue wavelettransformatie Bij de voorstelling van een object (beelden, geluiden, signalen,... ) is het gewenst dat de eigenschappen ervan gemakkelijk af te leiden zijn. Klassiek wordt hiervoor de fouriertransformatie gebruikt. Deze beeldt een signaal f(t) uit het tijdsdomein af op een functie F (f) in het frequentiedomein. Hierbij moet f(t) oneindig in de tijd en periodiek zijn om een compacte voorstelling in het frequentiedomein te bekomen. Echte signalen vertonen deze eigenschappen echter niet. Een muzieksignaal bevat verschillende noten, elk met een eigen frequentie, die 5

12 (a) na WFT (b) na WT Figuur 2.1: Verdeling van het tijd-frequentie-vlak gedurende een korte tijd gespeeld worden. Om deze verschilldende tonen te kunnen onderscheiden is er dus een voorstelling nodig die zowel in de tijd als in de frequentie nauwkeurig is. Een eerste oplossing hiervoor is het gebruiken van een gevensterde fouriertransformatie (Windowed Fourier Transform, WFT). Het venster W (t, T ) kan in de tijd verschoven worden. Dit venster met breedte T wordt over het signaal geplaatst, gecentreerd rond een tijdstip t 1. De WFT van een signaal word hier ˆF (f, T ) genoteerd. ˆF (f, T ) = f(t) W (t, T ) e j2πft dt (2.1) Het signaal wordt dus samengesteld uit de basisfuncties W (t, T ) e j2πft, in plaats van e j2πft bij de gewone fouriertransformatie. Het resultaat is een tweedimensionale voorstelling in het tijd-frequentie-vlak. Hierbij worden de frequentiecomponenten bepaald op equidistante tijdstippen. Figuur 2.1a toont de verdeling van het tijdfrequentievlak na de transformatie. Door invoeren van het venster treedt er bij transformatie frequentielek op. Dit leidt tot een beperkte resolutie in de frequentie. De afstand tussen de frequenties die onderscheiden kunnen worden is omgekeerd evenredig met de lengte T van het venster. Het is dus niet mogelijk een hoge nauwkeurigheid in zowel de tijd als de frequentie te bereiken. De oppervlakte van de rechthoeken is altijd even groot. Na de keuze van T ligt de volledige verdeling van het vlak vast. Toch zou het handig zijn om de traag variërende eigenschappen van het signaal over een grotere tijdspanne te bestuderen dan de snel variërende eigenschappen. Op figuur2.1b is een verdeling in vlakken van het tijd-frequentie-vlak weergegeven die 6

13 Figuur 2.2: Waveletfuncties dit impliceert. Deze verdeling kan bereikt worden door het signaal op te bouwen uit waveletfuncties. De waveletfuncties worden allemaal afgeleid van één functie: de moederwavelet ψ(t). De afleiding gebeurt door een tijdsverschuiving b en/of een uitsmering a in het frequentiedomein: ψ a,b (t) = 1 ψ( t b ). (2.2) a a ψ(t) Ψ(f) (2.3) ψ a,b (t) a e j2πfb Ψ(af) (2.4) Hierbij zijn a en b reële getallen. Fouriertransformatie van ψ a,b (t) levert 2.4, waarbij Ψ(f) de fouriergetransformeerde van de moederwavelet is. Hieruit volgt dat de tijdsbasis van de functies aangepast is aan hun frequentie. Hoogfrequente wavelets (kleine a) zijn smal, zoals te zien is op figuur 2.2. De eendimensionale continue wavelettransformatie W f a (b) van een functie f(t) is als volgt gedefinieerd: W f a (b) = f(t)ψ a,b (t)dt (2.5) = (f ψ a )(b) 7

14 for ( m = 0; m < d; m + +) { Lf 2 m+1(x) = h m Lf 2 m(x) W f 1 2 m+1 (x) = g m Lf 2 m(x) } Tabel 2.1: Decompositie van het signaal met behulp van FIR-filters (1) Opdat de transformatie reversibel zou zijn, is vereist dat: Ψ(0) = 0 ψ(t)dt = 0. (2.6) De wavelettransformatie in continue tijd komt dus eigenlijk neer op een convolutie van de functie f(t) met de wavelet ψ a,b (t). Bepaling van deze convolutie kan gebeuren door de fouriergetransformeerde van de functies te vermenigvuldigen. Nadien wordt het resultaat terug omgezet naar het tijdsdomein. Voor signalen f(x) met een discrete tijdsbasis wordt de discrete fouriertransformatie gebruikt. Na vermenigvuldigen kan dan via de inverse discrete fouriertransformatie het resultaat bepaald worden. De parameter b wordt hierbij een discrete parameter: b = n T s, waarbij n een geheel getal is en T s de bemonsteringsperiode. De parameter a is ook hier reëel. Om deze reden is dit ook een continue wavelettransformatie. Met de voorwaarden voor a en b die hierboven bepaald zijn, is de voorstelling van een functie f(t) in de basis ψ a,b redundant. De eendimensionale functie wordt afgebeeld op een vlak, waarbij de assen bepaald worden door a en b. Om deze overtolligheid te verminderen worden a en b beperkt tot discrete waarden. Dit leidt tot de discrete wavelettransformatie. 2.2 Discrete wavelettransformatie Om het aantal waarden dat a kan aannemen te verminderen wordt deze zodanig gekozen dat a = a m 0. Hierbij is m een geheel getal, a 0 > 1 en vast. In de bespreking die volgt, werd gekozen om de waarde van a gelijk te stellen aan 2. Het frequentie-interval waarin de fouriergetransformeerde van ψ a,b (x) verschillend is van nul, halveert dan voor elke volgende waarde van a (zie 2.4). De convolutie van deze opeenvolgende ψ a,b (x) met het signaal zal dan ook slechts in dit kleiner wordend interval in het frequentiedomein van nul kunnen verschillen. Een signaal dat het resultaat is van convolutie met een hogere a zal dus minder informatie bevatten. Het is bijgevolg niet zinvol om de convolutie te bepalen voor zeer grote waarden van a. 8

15 for ( m = 0; m < d; m + +) { Lf 2 m+1(x) = h Lf 2 m(x) Lf 2 m+1(x) = Lf 2 m+1(2x) W f 1 2 m+1 (x) = g Lf 2 m(x) W f 2 m+1(x) = W f 2 m+1(2x) } Tabel 2.2: Decompositie van het signaal met behulp van FIR-filters (2) Een andere benadering voor wavelets is dat ze afgeleid zijn van een dempende functie θ a (x). Wanneer ervan uitgegaan wordt dat θ a (x) afleidbaar is, geeft dit: De wavelettransformatie kan dan geschreven worden als: ψ(x) = dθ(x) dx. (2.7) W f a (b) = (f ψ a )(b) = (f (a dθ a dx ))(b) = a d dx (f θ a)(b). (2.8) Hieruit volgt een interessante eigenschap van W f a (b): voor een vaste a, bevat W f a (b) dus de afgeleide van het signaal dat gedempt werd met θ a. Als a groter wordt, zal f meer gedempt zijn, zodat W f a (b) informatie bevat over de afgeleide bij lagere frequenties. Voor toenemende waarden van a zal de fouriergetransformeerde van het resulterende signaal dus verschillend zijn in een kleiner wordend interval dat steeds dichter bij frequentie nul komt te liggen. De coëfficiënten bij de verschillende waarden van a noemt men de detailsignalen. De breedte van het signaal W f a (b) in het frequentiedomein wordt snel kleiner bij de keuze a = 2 m voor stijgende m. Voor de opeenvolgende waarden van m zal de breedte telkens halveren, bij de keuze a 0 = 2 (formule 2.4). Bij werkelijke signalen kan m echter niet willekeurig blijven toenemen. Voor het oorspronkelijke signaal wordt m = 0 vastgelegd. Voor m = 1, 2, bevat het signaal minder informatie omdat er minder frequenties in aanwezig zijn. Lf a (x) = f φ a (x) (2.9) Om dit probleem op te lossen is de schalingsfunctie φ(x) ingevoerd. Deze bepaalt het lage resolutiesignaal Lf a (2.9). De functie φ(x) is zodanig gekozen dat het lage resolutiesignaal alle informatie bevat die niet in het detailsignaal f ψ 2 m vervat is. Het bepalen van deze verschillende signalen kan met de FIR-filters g m en h m. Deze filters zijn respectievelijk geassocieerd met de functies ψ 2 m(x) en φ 2 m(x). In tabel 2.1 is dit in pseudocode weergegeven. De resulterende signalen, {Lf 2 d, {W f 2 m} 1 m d }, 9

16 vormen samen een redundante waveletvoorstelling van het oorspronkelijke signaal. Deze voorstelling van het signaal bevat immers d + 1 signalen met dezelfde lengte als het oorspronkelijke signaal. De FIR-filters zorgen ervoor dat de berekening gemakkelijker en sneller kan gebeuren dan wanneer men de fouriertransformatie zou gebruiken. De parameter a is reeds gediscretiseerd tot de waarden 2 m (1 m d), b kan echter nog alle mogelijke waarden aannemen. De FIR-filters zorgen ervoor dat de berekening gemakkelijker en sneller kan gebeuren dan moest men de fouriertransformatie gebruiken. Bij een signaal dat op equidistante tijdstippen bemonsterd is, zullen de DWTcoëfficiënten bepaald worden op de posities b = n2 m. Deze posities vallen samen met de positie van elementen uit het oorspronkelijke signaal. De resulterende transformatie kan met twee FIR-filters, g en h, geïmplementeerd worden. Na de filteroperatie moet het resulterende signaal gedecimeerd worden met een factor 2: de oneven elementen worden verwijderd. De redundantie is volledig verdwenen. Bij een goede keuze van de filters is de transformatie nog steeds reversibel. Figuur 2.3: Implementatie van de wavelettransformatie: voorwaartse en inverse transformatie g(n) = [ , , , , , , ] h(n) = [ , , , , , , , , ] Tabel 2.3: De filtercoëfficiënten voor de voorwaartse wavelettransformatie 10

17 Figuur 2.4: Filters in het frequentiedomein In figuur 2.3 is dit proces schematisch weergegeven voor zowel de decompositie als de reconstructie van het signaal. Het signaal wordt door de twee filters tegelijk gefilterd, daarna worden de resulterende signalen onderbemonsterd. Bij de reconstructie worden de inverse stappen uitgevoerd. Er worden nullen ingevoegd bij de oversampling. Het valt op dat de transformatie van het signaal in verschillende opeenvolgende stappen gebeurt. Elke stap wordt een niveau genoemd. In figuur 2.3 wordt het ingangssignaal dus over twee niveau s getransformeerd. De signalen a, b en c zijn de waveletcoëfficiënten van het signaal. Voor een grotere waarde van a wordt de wavelet breder in het tijdsdomein en smaller in het frequentiedomein. Als resolutie gedefinieerd wordt als het aantal basisbuncties per lengteëenheid, gebruikt om het signaal voor te stellen, dan is de waveletvoorstelling van een signaal een multiresolutie-voorstelling. Elk niveau van de transformatie is een extra resolutie. De filtercoëfficiënten voor de voorwaartse wavelettransformatie die verder gebruikt zullen worden, zijn weergegeven in tabel 2.3. De FIR-filters scheiden de hoge en lage frequenties uit het signaal. Bij goed gekozen filters overlappen de doorlaatbanden van de filters niet en komen alle frequenties in een van de banden terecht. Wanneer hiervoor gezorgd wordt, kan het signaal altijd gereconstrueerd worden, zelfs als alleen de elementen met even index bewaard worden. De karakteristiek van de beide filters in het frequentiedomein is weergegeven in figuur 2.4. In het tijdsdomein krijgt men figuur 2.5. Het filter g(n) is een hoogdoorlaatfilter, de wavelet. De som van de elementen van dit filter is nul. Dit is noodzakelijk opdat de transformatie reversibel zou zijn. Het uitgangssignaal van dit filter bevat dus de details in het signaal. 11

18 Figuur 2.5: Filters in het tijdsdomein Figuur 2.6: Opdeling van het spectrum na transformatie over 2 niveau s Het andere filter, h(n), is een laagdoorlaatfilter, de schalingsfunctie. Het resultaat hiervan is een signaal met een lagere resolutie. Het resulterende signaal moet alle informatie bevatten die niet in het detailsignaal zit. De som van de elementen van dit filter is 2, wat zorgt voor een versterking 2. Dit is nodig omdat na de voorwaartse transformatie slechts de helft van de elementen bewaard wordt. Bij de inverse transformatie worden er nullen ingevoegd. Het signaal wordt dus verzwakt. Om dit tegen te gaan, zorgen de filters samen voor een versterking 2. Deze wordt gelijkmatig verdeeld over de voorwaartse en de inverse transformatie. Beide filters zijn symmetrisch. Dit zorgt ervoor dat bij spiegelen van het signaal het getransformeerde signaal eveneens gespiegeld is. In de meeste gevallen wordt de laagdoorlaatcomponent nog eens gefilterd en gereduceerd. Dit gebeurt met dezelfde filters. Dit kan herhaald worden zolang het signaal lang genoeg is. In het frequentiedomein liggen de bekomen signalen in verschillende banden, figuur 2.6. Omdat de helft van de elementen niet nodig is, is de berekening ervan overbodig. Dit heeft voor gevolg dat het filter in elke stap twee posities verschoven kan worden over het beeld. Dit komt ook nog overeen met apart behandelen van even en oneven elementen in het oorspronkelijke beeld (figuur 2.8). Omdat de schalingsfunctie negen elementen nodig heeft om één element te kunnen 12

19 Figuur 2.7: Uitgangssignalen na transformatie over 2 niveau s 13

20 Figuur 2.8: Verschuif het filter telkens twee posities Figuur 2.9: Uitgangssignaal na transformatie over 2 niveau s 14

21 Figuur 2.10: Het oorspronkelijke beeld: lena produceren, heeft men nog zeven extra elementen nodig om een laagdoorlaatsignaal te bekomen dat half zo lang is als het originele signaal. Deze extra elementen bekomt men door in aan het begin en het einde van het signaal een aantal elementen te spiegelen. De precieze spiegeling is weergegeven in figuur 2.8. Het resultaat van de filtering is een signaal dat even lang is als het originele. De laagdoorlaatwaarden staan in het begin, daarna staan de hoogdoorlaatwaarden (figuur 2.9). In deze figuur stellen de zwarte en witte bolletjes respectievelijk de laag- en de hoogdoorlaatelementen voor. Het resultaat van transformatie over twee niveau s staat weergegeven in figuur 2.7. In elke stap vermindert de lengte van het signaal met een factor twee. Dit zorgt ervoor dat alle uitgangssignalen samen evenveel elementen bevatten als het ingangssignaal. De uitgangssignalen vormen samen de waveletcoëfficiënten van het signaal. 2.3 Tweedimensionale wavelettransformatie Om de wavelettransformatie van een beeld te bepalen, worden eerst alle rijen afzonderlijk getransformeerd. Het resultaat hiervan is weergegeven in figuur 2.11, waarbij vertrokken werd van figuur Daarna worden de kolommen getransformeerd. Dit is de transformatie over één niveau (figuur 2.12). Het beeld is na deze transformatie opgedeeld in vier kwadranten (figuur 2.13). 15

22 Figuur 2.11: Het beeld na de rijtransformatie Figuur 2.12: Het beeld na transformatie over 1 niveau 16

23 (a) één niveau (b) twee niveau s Figuur 2.13: Opdeling van het beeld in kwadranten na transformatie De linkerbovenhoek, L 1 bevat de laagdoorlaatcomponenten van zowel de rij- als de kolomtransformatie. Dit beeld lijkt sterk op het oorspronkelijke beeld. De rechterbenedenhoek, D 3 1 bevat de hoogdoorlaatcomponenten van de transformaties. Wie goed kijkt, kan zien dat hier vooral schuine lijnen in voorkomen. Dit komt omdat het beeld zowel in horizontale als in vertikale richting een overgang moet maken om hier een van nul verschillend resultaat te bekomen. Het D 1 1-kwadrant bevat vooral informatie over de vertikale overgangen in het beeld, het D 2 1-kwadrant vooral over de horizontale. Meerder niveau s van de transformatie worden bepaald door deze nogmaals toe te passen op de L 1, het laagdoorlaatbeeld. Het resultaat na twee niveau s is te zien in figuur Omdat zowel de rijen als de kolommen getransformeerd worden, is de versterking bij elk niveau van de transformatie 2. De intensiteit van het laagdoorlaatbeeld verdubbelt dus bij elk niveau. In de figuren wordt dit effect tegengegaan door alle waveletcoëfficiënten te halveren. Het L i -gedeelte van de figuur blijft grote gelijkenissen vertonen met het oorspronkelijke beeld. De andere delen van de figuren tonen dat er inderdaad een verzwakking is opgetreden als er over meer niveau s getransformeerd wordt. Dit is duidelijk te zien wanneer men de kwadranten D i 1 van de figuren 2.12 en 2.14 vergelijkt. De grote gelijkenis tussen het oorspronkelijke beeld en L i zorgt voor de schaalbaarheid van de videocodec. Een gebruiker die een beeld met minder pixels wenst te ontvangen, stuurt men alleen dit ene kwadrant van het beeld. 17

24 Figuur 2.14: Het beeld na transformatie over twee niveau s 18

25 Hoofdstuk 3 Hardware Het ontwikkelbord waarop de transformatie geïmplementeerd wordt, is weergegeven in figuur 3.1. Op dit bord bevinden zich onder meer: Stratix device EP1S25 (FPGA): RAM-geheugen DSP-blokken met vermenigvuldigers PLL s (Phase Locked Loops) logische cellen en registers PCI-bus DDR SDRAM geheugen en flash geheugen Hierna volgt een beknopte beschrijving van de software en de voornaamste componenten die gebruikt worden. Meer informatie is terug te vinden in [8]. 3.1 Quartus II Het programma Quartus II wordt gebruikt om een design op de FPGA te zetten. Het programma kan echter veel meer dan dat. Het is mogelijk het design te compileren, simuleren, plaatsen, routeren en synthetiseren. Bij het compileren wordt nagegaan of er zich nog fouten in de beschrijving bevinden. Als het programma succesvol compileert, kan een tijdsanalyse gedaan worden. Bij deze analyse wordt ondermeer de maximale klokfrequentie bepaald. Er wordt ook nagegaan hoeveel van de beschikbare hardware nodig zal zijn bij de synthese. Simuleren van het design is nuttig om de juiste werking ervan te controleren. Bij plaatsen en routeren wordt vastgelegd welke delen van de FPGA effectief 19

26 Figuur 3.1: Het ontwikkelbord gebruikt zullen worden en hoe deze verbonden worden. De synthesestap brengt het design effectief op de FPGA. Het design moet in VHDL of Verilog beschreven zijn om als input te kunnen dienen. Om specifieke delen van de FPGA te kunnen gebruiken is er een MegaWizard Plug- In Manager aanwezig in het programma. Hiermee kan van de verschillende blokken op de FPGA een beschrijving in VHDL verkregen worden. In de wizard kunnen de gewenste eigenschappen van het blok opgegeven worden. 3.2 FPGA RAM-geheugen Er bevinden zich drie verschillende types geheugen op de FPGA: M512-, M4K-, en M-RAM-blokken. Dit zijn allemaal synchrone geheugens, wat inhoudt dat er een klok aanwezig is die bepaalt wanneer gelezen of geschreven kan worden. 20

27 Figuur 3.2: Tweepoortsgeheugen: true dual port Om uit een geheugen te lezen is een leespoort nodig. Om te lezen, wordt het adres address waarop gelezen wordt, opgegeven. De data verschijnen op de uitgang q. Om in een geheugen te schrijven zijn meerdere ingangen nodig. Naast het adres address waarop geschreven zal worden, moet ook de data data die men wil schrijven aangelegd kunnen worden. Een ander signaal wren (write enable) bepaalt of het mogelijk is om te schrijven. Dit voorkomt dat willekeurige data in het geheugen zouden belanden. De term simple dual-port -geheugen wijst op een geheugen met twee poorten. Er zijn een lees- en een schrijfpoort aanwezig. Elke klokcyclus kan dus via de ene poort gelezen worden en via de andere geschreven. Sommige blokken kunnen gebruikt worden als true dual-port -geheugen (figuur 3.2). Zo n geheugen heeft twee poorten waarlangs zowel gelezen als geschreven kan worden. Elke combinatie van de verschillende mogelijke operaties kan tegelijk uitgevoerd worden: twee leesoperaties, twee schrijfoperaties of een lees- en een schrijfoperatie. De gebruiker kan de breedte van data kiezen. Omdat de geheugens een bepaald aantal bits kunnen bevatten, wordt bij deze keuze ook de adresbreedte vastgelegd. De verschillende mogelijke configuraties zijn weergegeven in tabel 3.1 voor de verschillende types geheugen. Bij gebruik van de geheugens als tweepoortsgeheugen kan de breedte van data verschillend zijn aan beide poorten. Bij gebruik van deze geheugens moeten ze aangemaakt worden met de MegaWizard in Quartus II. De configuraties in tabel 3.1 vormen hierbij geen beperking, het aantal plaatsen in het geheugen moet wel een macht van twee zijn. Wanneer bijvoorbeeld een geheugenblok met 64 plaatsen voor 18 bits gevraagd wordt, kan de software twee M512-RAM blokken combineren. Voor de gebruiker lijkt het dan alsof er één groot geheugenblok is. Op de figuren 3.3 en 3.4 is te zien hoe er gelezen en geschreven kan worden via de poorten van een true dual port -geheugen. Er kan elke klokcyclus via beide poorten gelezen of geschreven worden. Om te lezen moet wel een klokcyclus gewacht worden 21

28 address_a address_b clock_a clock_b q_a q_b memory4 memory3 memory2 memory1 memory0 A B C D E A D C A B E D C B A Figuur 3.3: Leesoperaties vooraleer de data verschijnen op de uitgang q. Merk hierbij op dat de data die in het geheugen geschreven worden ook op q verschijnt. Ongeacht het signaal wren wordt er dus gelezen. Om dit te simuleren in systemc is hiervan een model geschreven (mem.h in bijlage A). M512-RAM-blokken Deze blokken bevatten 576 geheugenbits, waarbij rekening gehouden werd met de pariteitsbits. Ze kunnen geschakeld worden als eenpoortsgeheugen, simple dual-port -geheugen, FIFO en als schuifregister. De gebruiker heeft de keuze tussen een aantal configuraties: hij kan de databreedte kiezen en ook het aantal posities in het geheugen. De mogelijke configuraties staan weergegeven in de eerste kolom van tabel 3.1. Op de FPGA bevinden zich 224 van deze blokjes. M4K-RAM-blokken Dit blok kan, naast wat met een M512-RAM-blok ook kan, ook geschakeld worden als true dual-port -geheugen. Deze blokken kunnen tot bits bevatten, in verschillende configuraties (kolom 2 van tabel 3.1). Er zijn 138 van deze blokken. M-RAM-blokken Dit blok kan geschakeld worden als eenpoortsgeheugen, simple dual-port -geheugen en true dual-port -geheugen. Deze blokken kunnen tot 22

29 wren_a wren_b data_a data_b address_a address_b clock_a clock_b q_a q_b memory4 memory3 memory2 memory1 memory0 A A 0 D C 2 E 1 D C 2 3 B 0 1 A 0 Figuur 3.4: Schrijfoperaties M512-RAM M4K-RAM M-RAM blok blok blok K 1 64K K 2 64K K 4 32K K K K K K K 128 4K 144 Tabel 3.1: Configuraties voor de verschillende geheugenblokken 23

30 bits bevatten, in verschillende configuraties (kolom 3 van tabel 3.1). Er zijn slechts twee van deze blokken DSP-blokken De DSP-blokken bestaan elk uit acht vermenigvuldigers en optellers. Ze worden dikwijls gebruikt bij digitale signaalverwerking. De vermenigvuldigers zijn geoptimaliseerd voor vermenigvuldiging van twee bitrijen met lengte 9. Ze kunnen ook samengesteld worden tot vier vermenigvuldigers of één vermenigvuldiger. De blokken kunnen geconfigureerd worden als vermenigvuldiger, vermenigvuldigeropteller,... Ze kunnen bijgevolg gemakkelijk als FIR-filter gebruikt worden. Om de DSP-blokken te gebruiken voor een implementatie van een algoritme moet men niet expliciet het blok definiëren. Quartus II gebruikt spontaan een DSP-blok in de juiste werkingsmode. 3.3 DDR SDRAM Het DDR SDRAM geheugen heeft een capaciteit van 256 MByte. Het protocol om het geheugen aan te spreken, is vrij complex. Het duurt minstens acht klokcycli om op één adres te lezen. Er is wel de mogelijkheid om in bursts te lezen. Dan wordt op vier opeenvolgende adressen in het geheugen gelezen. Dan kan het iets sneller. De data worden per 128 bits uit het geheugen gelezen. Om de toegang tot dit geheugen te simuleren in SystemC werd een blok geschreven met een eenvoudigere werking (zie InOutPut.cpp in bijlage A). Het vormt een interface tussen het DDR-geheugen en het design op de FPGA. Voor de simulatie in SystemC is de inhoud van het DDR-geheugen opgeslagen in het InOutPut-blok. Het aantal klokcycli om uit het geheugen te lezen, is gelijk aan acht genomen. Er wordt geen rekening gehouden met lezen in bursts. Het blok kan een groep elementen uit het DDR-geheugen naar een geheugen op de FPGA kopiëren, of omgekeerd. Het is de bedoeling dat deze interface, na omzetting van het design in VHDL, in VHDL-code geschreven wordt. Het DDR-geheugen kan in VHDL wel gesimuleerd worden omdat de beschrijving hiervan met de MegaWizard kan gebeuren. 24

31 Hoofdstuk 4 Probleemanalyse 4.1 Nauwkeurigheid In een digitale voorstelling wordt elk kleurenbeeld gesplitst in drie verschillende beelden. Er zijn een Y-, een U- en een V-component. De Y-component bevat de informatie over de grijswaarden. De andere componenten bevatten de kleureninformatie. Deze componenten worden afzonderlijk behandeld. In elke component wordt de waarde van de pixels opgeslagen in bytes. In wat volgt worden alleen grijswaarde-beelden (Y) behandeld. De werkwijze voor de andere componenten is dezelfde. De beelden die getransformeerd moeten worden, zijn afkomstig van de bewegingsschatting. Dit zijn zowel de referentiebeelden als de foutbeelden. In de referentiebeelden kunnen de elementen 256 verschillende waarden aannemen. Daarbij zijn alle elementen positief. Hiervoor zijn acht bits nodig. In de foutbeelden kunnen echter ook elementen met negatieve waarden voorkomen. Om deze reden zal elk element van het inkomende beeld voorgesteld worden met negen bits, er komt een tekenbit bij. De filtercoëfficiënten zijn geen gehele getallen. Deze moeten, om in hardware snel te kunnen rekenen, omgezet worden naar getallen met vaste komma. Bij zulke getallen met woordlengte wl stellen iwl (integer word length) bits het gehele deel voor. De getallen wl en iwl zijn vast gekozen. Om een getal x op deze manier voor te stellen, moet het dus eerst vermenigvuldigd worden met 2 wl iwl : y = 2 wl iwl x. Daarna wordt de bitvoorstelling van het gehele deel van y bepaald. De voorstelling van de pixels van de inkomende beelden is dus: wl = iwl = 9. Om de beeldkwaliteit te kunnen bepalen, wordt het beeld na de transformatie opnieuw gereconstrueerd. Het gereconstrueerde beeld wordt dan vergeleken met het oorspronkelijke beeld. De PSNR 1 is een maat voor de gelijkenis tussen twee beelden. 1 PSNR: Peak Signal To Noise Ratio, pieksignaalruisverhouding 25

32 (a) Y-beeld (b) Y-foutbeeld Figuur 4.1: Twee testbeelden De beelden die vergeleken worden, moeten hetzelfde formaat hebben. N (p i q i ) 2 i=0 a = N PSNR = 10 log ( ) a (4.1) In deze uitdrukkingen is N het aantal elementen uit het beeld. p i en q i zijn de waarden van de pixels, respectievelijk uit het oorspronkelijke en het gereconstrueerde beeld. De variabele a bepaalt de gemiddelde kwadratische fout. Een kleine waarde voor a wijst dus op een grote gelijkenis tussen de beelden. Om hieruit de PSNR te bepalen, wordt a vergeleken met de maximale signaalwaarde. Dit gebeurt met via de deling in vergelijking 4.1. Hierbij staat de maximale signaalwaarde in de teller om een hoge waarde te verkrijgen wanneer de beelden goed op elkaar lijken (a klein). De PSNR wordt uitgedrukt in db, zodat nog het logaritme genomen moet worden. Een hoge PSNR wijst dus op een goede gelijkenis tussen de beelden. De vermenigvuldigers op de FPGA zijn geoptimaliseerd om vermenigvuldigingen met getallen van 9, 18 of 36 bits uit te voeren. Het aantal bits om de berekening uit te voeren wordt hieruit gekozen. Indien gewenst kunnen de minst beduidende bits dan nog genegeerd worden. De twee beelden waarmee de invloed van de voorstelling aangetoond wordt, staan op figuur 4.1. Omdat de inkomende pixels een woordlengte negen hebben, wordt eerst een poging gedaan om dit zo te houden. Het is wel nodig om iwl te verhogen. De versterking ( 2) van het filter zorgt er immers voor dat in elk niveau van de transformatie de waarden verdubbeld kunnen worden. Dit komt omdat het tweemaal toegepast wordt, zowel op de rijen als op de kolommen. Een CIF-beeld kan maximaal vijf niveau s van 26

33 wl Y-beeld 26,7 51,9 59,1 91,2 + + Y-foutbeeld 24,5 52,7 59,8 98,2 + + Tabel 4.1: PSNR voor de testbeelden bij iwl = 14 en verschillende wl de transformatie ondergaan (er moet een even aantal pixels zijn om de transformatie op uit te voeren). Er moeten dus vijf bits bijkomen voor de komma, iwl wordt dan 14. De vijf minst beduidende bits van het resultaat worden genegeerd om wl = 9 te Figuur 4.2: Gereconstrueerd beeld, wl = 9, PSNR = 27 kunnen behouden. In het getransformeerde beeld komen dus alleen veelvouden van 16 voor. De PSNR is in dit geval 27. Om de betekenis hiervan te verduidelijken is in figuur 4.2 het beeld te zien dat verkregen wordt na reconstructie. Er is een verschil merkbaar. Omdat ook in de andere stappen van de videocodec fouten geïntroduceerd kunnen worden is een voorstelling met 9 bits dus niet voldoende. Bij keuze voor een implementatie met 18 bit-getallen, worden 18 bits gebruikt voor alle bewerkingen en tussentijdse resultaten. Op het einde kunnen dan ook een aantal bits genegeerd worden indien gewenst. In tabel 4.1 staat de waarde voor PSNR die bekomen wordt bij verschillende waarden voor wl. Er werd telkens over één niveau getransformeerd, iwl was telkens 14. Figuur 4.3 maakt duidelijk dat er geen zichtbaar verschil is tussen het testbeeld en een reconstructie met PSNR = 59. Omdat 18 bits ruimschoots voldoende blijkt te zijn, wordt daarmee gewerkt. De mogelijkheid om met 36 bits te werken is niet verder onderzocht. Een hoger aantal bits betekent immers dat er meer hardware zal nodig zijn. Onder meer het aantal DSP-blokken dat nodig is zal sterk toenemen. 27

34 Figuur 4.3: Gereconstrueerd beeld, wl = 15, PSNR = Formalisering Voor de implementatie in hardware wordt er vanuit gegaan dat het te transformeren beeld in het DDR-geheugen opgeslagen is, M N (= rijen kolommen) geheugenplaatsten na elkaar zijn ingenomen. Na de transformatie is het beeld terug in dit geheugen geschreven. Het is duidelijk dat er een aantal in- en uitgangen nodig zijn om een werkend geheel te kunnen verkrijgen. Om een ontwerp te maken, moeten deze eerst vastlegd worden. De geheugens die zich op de FPGA zelf bevinden, worden opgenomen in het ontwerp. Hiervan zijn dus geen poorten te zien op het hoogste ontwerpsniveau. De poorten naar de buitenwereld en naar het DDR-geheugen zijn dus de enige die beschouwd worden. Het DDR-geheugen wordt gesimuleerd met een InOutPut-blok, zoals reeds is aangegeven in hoofdstuk 3. Dit heeft een eigen interface die natuurlijk anders is dan die van het DDR-geheugen. Hier wordt deze aangepaste interface gebruikt. Bij deze poorten horen natuurlijk een klok, een startsignaal, een signaal dat het einde van de transformatie aangeeft en een reset. Verder zijn ook de beeldgrootte (het aantal rijen en kolommen), de plaats waar het beeld zich in het DDR-geheugen bevindt en het aantal niveau s waarover getransformeerd moet worden van belang. In het geval er eventueel andere wavelet-coëfficiënten gebruikt zouden worden kunnen hier ook poorten voor voorzien worden. Dit is hier niet gebeurd. De reden hiervoor is dat meestal dezelfde coëfficiënten gebruikt zullen worden. Bij codering van videobeelden zal de hele video met dezelfde coëfficiënten getransformeerd worden. Om ze te wijzigen kan men de FPGA herconfigureren. Het resultaat hiervan levert: een aantal poorten van het InOutPutblok start: teken dat er begonnen mag worden 28

35 reset: de berekening wordt onderbroken rows: het aantal rijen in het te transformeren beeld cols: het aantal kolommen in het beeld levels: het aantal niveau s waarover de tranformatie uitgevoerd moet worden clk: een klok beginadres: het adres van de eerste pixel van het beeld in de DDR. ready: de berekening is helemaal gedaan Figuur 4.4: Blokschema Een eenvoudig blokschema is te zien op figuur 4.4. De streep-puntlijn geeft de grens van de FPGA aan. Op de FPGA bevinden zich het InOutPut-blok dat de interface vormt tussen het DDR-geheugen en DWT, het blok dat de wavelettransformatie uitvoert. De klok wordt gegenereerd op de FPGA zelf. Ook het DDR-geheugen, dat zich niet op de FPGA bevindt, heeft een eigen klok. De aangeduide in- en uitgangen van DWT zijn degene die hierboven besproken zijn. In hoofdstuk 5 zullen twee verschillende implementaties van het blok DWT besproken worden. Bij gewone werking moet het beeld eerst in het DDR-geheugen geschreven worden. Om de wavelet-transformatie te beginnen moeten de ingangen rows, cols, levels en beginadres geïnitialiseerd worden. Start moet één klokpuls op hoog gebracht worden. Er moet het volgende gelet worden: 29

36 Bij opstarten in het begin moet reset even hoog gebracht worden, opdat in de goede toestand kan gestart worden. Tijdens de werking moet reset laag blijven. Reset onderbreekt de bewerking. Er wordt gewoon gestopt, het beeld in DDR wordt niet gereconstrueerd. De ingangen mogen vrij veranderd worden tijdens de werking, er wordt toch niet meer naar gekeken. Let op aan het einde van de transformatie: als start nog hoog staat zal opnieuw begonnen worden. Heropstarten van de module na een fout gaat als volgt: breng reset op hoog, wacht een klokpuls en herbegin van bij het begin (schrijven van het beeld naar het DDRgeheugen). Voor de implementatie in hardware gelden enkele beperkingen. Het grootste beeldformaat dat getransformeerd moet kunnen worden, is het CIF-formaat: pixels. Alle beelden die kleiner zijn moeten ook getransformeerd kunnen worden. Het aantal bits, nodig om het aantal rijen en kolommen aan te geven, is bijgevolg minimaal 9. Het beeld mag maximaal over 4 niveau s getransformeerd worden. Dit wil zeggen dat het laagdoorlaatbeeld van een CIF-beeld dan nog slechts pixels groot is. Wanneer nog een extra niveau getransformeerd wordt, is het overblijvende laagdoorlaatbeeld zeer klein. De informatie zal hierdoor bijna volledig verdwenen zijn. Het signaal levels wordt dus voorgesteld door 3 bits. Er werd getest hoe snel de transformatie in software is (processor: AMD Athlon XP 2500+). Deze testen werden gedaan op een CIF-beeld. Omdat de oorspronkelijke code (resouce functions.cpp) zeer ondoorzichtig geschreven is, werd een eigen versie gemaakt (dwt1 comp.cpp in de bijlage). Transformatie van één beeld kan duren tot 0,151 seconden (4 niveau s) met het algoritme van de VUB, of 6,6 beelden per seconde. Met de eigen implementatie in C++ duurt dit nog slechts 0,039 seconden (26 beelden per seconden). Hieruit blijkt dat de transformatie al bijna in ware-tijd kan uitgevoerd worden. 30

37 Hoofdstuk 5 Hardware-implementaties De wavelettransformatie kan op verschillende manieren in hardware geïmplementeerd worden. Er kunnen spatiale decomposities gemaakt worden. Hierbij is een minimum aan registers en controle nodig. Dit is eigenlijk een bijna combinatorische realisatie van het geheel. Het aantal circuitelementen wordt hierdoor groot, de elementen worden weinig efficiënt gebruikt. Dit kan verbeterd worden door de sequentialiteit te verhogen, dit vermindert het aantal elementen. Een geheel spatiale decompositie van het probleem is niet mogelijk. Dit omdat er niet voldoende hardware ter beschikking staat om het gehele beeld ineens uit het DDR-geheugen te lezen en ineens alle bewerkingen te doen. Temporele (of sequentiële) decomposities bestaan uit een klein aantal operatoren die hergebruikt worden. Hier worden enkel decomposities beschouwd met één enkele signaalverwerkingseenheid. Er zijn dus net genoeg vermenigvuldigers en optellers aanwezig om in een klokcyclus een hoog- en een laagdoorlaatelement te bepalen. Dit maakt dat de implementaties allemaal wel sequentieel zijn. Deze ene signaalverwerkingseenheid wordt zo efficiënt mogelijk gebruikt. Bij de bepaling van de transformatie worden telkens twee elementen tegelijk bepaald: een laag- en een hoogdoorlaatelement. In wat volgt worden bij de bespreking van de algoritmes vooral de laagdoorlaatelementen behandeld. Daarbij mag niet vergeten worden dat samen met elk laagdoorlaatelement ook een hoogdoorlaatelement bepaald wordt. De rij-kolomgebaseerde transformatie, de rijgebaseerde transformatie en de blokgebaseerde wavelettransformatie zijn drie veel gebruikte implementaties waarbij slechts een signaalverwerkingseenheid vereist is. 31

38 Figuur 5.1: Eendimensionale transformatie: breedte-eerst 5.1 Rij-kolomgebaseerde transformatie Een eerste mogelijkheid om de transformatie uit te voeren is in de breedte te werken. Eéndimensionaal worden de elementen berekend in de volgorde weergegeven in figuur 5.1, voor een transformatie over twee niveau s. De getransformeerde elementen worden in koppels bepaald, zoals hierboven al aangegeven werd. De originele pixels worden allemaal over het eerste niveau getransformeerd. Wanneer dit afgelopen is, worden de laagdoorlaatelementen van dit eerste niveau nogmaals getransformeerd. De hoogdoorlaatelementen kunnen onmiddelijk bewaard worden op de plaats waar het resultaat terecht moet komen. De laagdoorlaatelementen die in de eerste stap gecreëerd worden moeten bewaard worden in een buffergeheugen omdat ze niet onmiddellijk verder worden omgezet. Figuur 5.2: Rijtransformatie Figuur 5.3: Kolomtransformatie De tweedimensionale uitbreiding bestaat erin dat alle niveau s één voor één bepaald worden. Eerst wordt de filtering over 1 niveau toegepast op de rijen van het beeld (figuur 5.2), het resultaat hiervan is te zien in figuur Daarna worden de kolommen getransformeerd (figuur 5.3). Pas daarna kan begonnen worden met de transformatie over het volgende niveau. Omdat de elementen waarop de kolomtransformatie moet toegepast worden in een andere volgorde gecreëerd worden (figuur 5.2) dan geconsumeerd (figuur 5.3) moet hier een tamelijk groot geheugen aanwezig zijn. Dit 32

39 Figuur 5.4: Blokschema van de rij-kolomgebaseerde implementatie is een buffer. Deze buffer moet alle elementen kunnen bevatten die over de rijen getransformeerd zijn, want pas na transformeren van de laatste rij zijn alle elementen van de eerste kolom bepaald. Er moet dus een volledig beeld in opgeslagen worden. Het geheugen op de FPGA zelf is niet groot genoeg om een volledig beeld te bevatten. Daarom moet elke rij of kolom afzonderlijk naar dit geheugen gekopieerd worden en na transformatie terug in het DDR-geheugen geschreven worden. Na bepalen van het eerste niveau wordt hetzelfde toegepast op het laagdoorlaatgedeelte voor alle volgende niveau s Implementatie Deze werkwijze wordt weerspiegeld in het blokschema (figuur 5.4) van de implementatie. Op de figuur zijn de delen die in hoofdstuk 4 al aan bod kwamen ook weergegeven. wt2 Dit is het blok dat de hele operatie controleert. Het stuurt de andere blokken aan: het start de geheugentransfers en de filtering op het juiste moment. mem1 en mem2 Het geheugen op de FPGA wordt opgedeeld in twee blokken. Zo kunnen twee pixels tegelijk gelezen of geschreven worden. Dit is handig omdat 33

40 Figuur 5.5: FIR-filter h de FIR-filters in elke stap over twee posities verschoven worden, wat betekent dat in elke stap twee nieuwe elementen nodig zijn. Om de verdeling efficiënt te doen, worden de even pixels van de oneven pixels gescheiden. In elke stap van de wavelettransformatie moet dan uit elk geheugen een element gelezen worden. Na transformatie worden de laagdoorlaatwaarden in mem1 geschreven, de hoogdoorlaatwaarden komen in mem2 terecht. Elk van de geheugens moet een halve rij of kolom kunnen bevatten. Dit betekent dat er minimaal 176 plaatsen beschikbaar moeten zijn. Omdat het aantal plaatsen in een geheugen een macht van 2 moet zijn, wordt voor 256 gekozen. Het maximale beeld dat getransformeerd kan worden, is dan elementen groot. wt1 Dit is het blok dat de pixels die zich in de geheugenblokjes bevinden moet transformeren. Het voert de ééndimensionale wavelettransformatie uit over 1 niveau op de pixels in mem1 en mem2. Een mogelijke implementatie voor het FIR-filter h is weergegeven in figuur 5.5. De optelling van vijf termen heeft echter een grote uitvoeringstijd op de FPGA. Een beter idee is om gebruik te maken van een implementatie als schuifregister. De filters kunnen ook geïmplementeerd worden als schuifregister, een mogelijke configuratie van de DSP-blokken. De gebruikte filters bestaan eigenlijk uit 4 schuifregisters met verschillend aantal elementen. De even en oneven pixels worden afzonderlijk behandeld. Dit is mogelijk omdat het filter in elke stap over twee posities verschoven wordt. De resultaten van het even en oneven filter worden, dan opgeteld. Voor deze implementatie is een kloksnelheid van 200 MHz mogelijk. Op figuur 5.6 staat een schema van de uitwerking voor h. Bij de effectieve 34

41 Figuur 5.6: Schuifregister h uitvoering is er rekening mee gehouden dat de filters symmetrisch zijn. De vermenigvuldigingen met h(0)... h(3) worden maar één keer uitgevoerd. In de figuur zou dit tot verwarring leiden. Daarom is alleen voor h(3) deze weergave gebruikt. Elke klokperiode kan een nieuwe waarde aan de ingang aangelegd worden. Voor het filter g wordt hetzelfde gedaan. Om een rij of kolom van of naar het DDR-geheugen te kopiëren, wordt InOutPut gestart. Bij lezen uit het DDR-geheugen kopieert het blok de even pixels in mem1, de oneven in mem1. Bij schrijven worden eerste alle laagdoorlaatelementen gekopieerd. Deze komen allemaal uit mem1. Pas daarna wordt mem2 gekopieerd, de hoogdoorlaatelementen. Dit heeft tot gevolg dat de beide poorten van het InOutPut-blok niet uitwisselbaar zijn. Omdat zowel InOutPut als wt1 in deze geheugens schrijven en lezen moeten ze beide twee poorten hebben. De ene poort is verbonden met InOutPut, de andere met wt1. De omzetting van het ontwerp naar VHDL gebeurt met de CoCentric SystemCcompiler van Synopsys. Het InOutPut-blok wordt hierbij niet omgezet. Dit blok moet immers volledig opnieuw geschreven worden in VHDL. De volledige inhoud van DWT wordt wel omgezet. Na de omzetting moeten de geheugenblokken die zich op de FPGA bevinden nog vervangen worden door blokken die met de MegaWizard aangemaakt zijn. Om dit vervangen eenvoudig te kunnen doen, werd de interface van de blokken in SystemC al gelijk gekozen aan die van de gegenereerde blokken. Met Quartus II worden de benodigde hardware en de maximale kloksnelheid bepaald voor het blok DWT Benodigde hardware In tabel 5.1 staat weergegeven hoeveel hardware nodig is voor deze implementatie. 35

42 logische cellen 1835 (7%) pinnen 192 (27%) geheugenbits 9216 (0,5%) vermenigvuldigers 10 (25%) registers 817 Tabel 5.1: Benodigde hardware voor de rij-kolomgebaseerde implementatie In elk van de geheugens kunnen = 9216 bits opgeslagen worden. Van de tien vermenigvuldigers zijn er negen die de FIR-filters vormen. De andere wordt gebruikt bij de controle Snelheid aantal klokcycli schatting tijd per beelden niveau s per beeld klokcycli beeld (ms) per s ,5 20, ,9 16, ,1 15, ,9 15,2 Tabel 5.2: Snelheid van de rij-kolomgebaseerde implementatie De maximale klokfrequentie voor dit ontwerp is 78 MHz. In tabel 5.2 staat in de eerste kolom weergegeven hoeveel klokcycli er nodig zijn om een CIF-beeld te transformeren. Hieruit is ook afgeleid hoelang het duurt om een beeld te transformeren (kolom 3) en hoeveel beelden per seconde getransformeerd kunnen worden (kolom4). Het kopiëren van de elementen en de filterbewerking bepalen het aantal klokcycli. Geheugentoegangen Er wordt elke keer een rij of kolom ingelezen, bewerkt en terug weggeschreven. Voor elk niveau moet elk element dat getransformeerd wordt twee keer uit het DDR-geheugen gelezen worden en weer teruggeschreven. Voor de rijtransformatie moet elk element al een keer gelezen en geschreven worden. Ook voor de kolomtransformatie is dit nodig. Voor elk volgend niveau zal het beeld maar een kwart zijn van dat bij het vorige niveau. Voor een transformatie over L niveau s van een beeld van M N pixels is het aantal geheugentoegangen weergegeven in formule 5.2. # toegangen DDR = 4 (M N + M N M N ) (5.1) 22L

43 = 4 M N 1 ( 1 4 )L (5.2) Er zijn dus minstens 4 (M N) geheugentoegangen, dit is het geval wanneer over een niveau getransformeerd wordt. Deze formule heeft een bovengrens: 4 4 (M N) is 3 het grootste aantal geheugentoegangen dat kan voorkomen. Voor een CIF-beeld zijn er dus minstens geheugentoegangen, wat betekent dat hiervoor klokcycli nodig zijn. Filterbewerkingen Ook de tijd van de berekeningen kan geschat worden. Bij transformatie van een rij of kolom is het aantal gebruikte klokcycli ongeveer gelijk aan het aantal elementen van deze lijn. Om een beeld over L niveau s te transformeren zijn er dus 2 M N 1 ( 1 4 )L (5.3) 4 klokcycli nodig. Om een CIF-beeld over een niveau te transformeren komt dit neer op klokcycli. Samentellen van het aantal klokcycli voor de geheugentoegangen en de bewerkingen levert een vrij goede schatting van het totale aantal klokcycli dat nodig is om een beeld te transformeren (kolom 2 van tabel 5.2). Daarbij valt op dat vooral de geheugentransfers een groot deel van de tijd in beslag nemen. Amper 6% van de tijd wordt ingenomen door de bewerkingen. Uit deze gegevens blijkt dat deze implementatie een beeld niet in ware-tijd kan transformeren, ze is zelfs trager dan de software. De oorzaak hiervan is het grote aantal toegangen tot het DDR-geheugen. In wat volgt worden implementaties besproken waarbij vooral dit aantal geheugentoegangen verminderd wordt Optimalisaties In dit werk zijn geen optimalisaties gebeurd. Er worden bijvoorbeeld slechts om de twee klokcycli twee nieuwe elementen in het filter geschoven. Indien het blok wt1 in elke klokcyclus op twee plaatsen kan lezen én schrijven, is het mogelijk om elke klokcyclus twee elementen in het filter te schuiven. Hiervoor zijn vier poorten naar de geheugens nodig. Deze kunnen gerealiseerd worden op twee manieren. Ofwel komen er twee extra geheugens bij, waar de resultaten in geschreven worden. Deze geheugens zijn beide even groot als mem1 en mem2. Ofwel moet wt1 naar zowel mem1 als mem2 twee poorten hebben. Dit laatste kan gerealiseerd worden door de poorten van InOutPut en wt1 te combineren met een multiplexer. 37

44 Een andere mogelijke optimalisatie is het gebruik van een buffergeheugen op de FPGA. Met de huidige implementatie is nog gedurende 6% van de tijd geen communicatie met het DDR-geheugen. Door gebruik te maken van een buffer kan ook tijdens dit tijdsinterval gecommuniceerd worden met het DDR-geheugen. Gezien het heel klein aandeel in de tijd van de filterbewerking zullen deze optimalisaties waarschijnlijk niet veel effect hebben. 5.2 Rijgebaseerde transformatie Er zijn twee verschillende werkwijzen die de naam rijgebaseerde transformatie gekregen hebben. Hiervan werd geen implementatie gemaakt op de FPGA Niveau per niveau Het eendimensionale schema blijft hier hetzelfde. De tweedimensionale transformatie wordt eveneens niveau per niveau uitgevoerd. Na het eerste niveau wordt hetzelfde toegepast op het L 1 -gedeelte van het getransformeerde beeld, enz... Figuur 5.7: Rijtransformatie Figuur 5.8: Kolomtransformatie Er wordt opnieuw begonnen met de transformatie van de rijen. De getransformeerde rijen worden nu bewaard op de FPGA. Wanneer er vijf rijen getransformeerd zijn, wordt van elke kolom het eerste element bepaald. Vervolgens worden twee rijen getransformeerd. Hierna kan het volgende element bepaald worden van alle kolommen. De elementen die zowel horizontaal als vertikaal getransformeerd zijn, worden naar het DDR-geheugen geschreven. Er moeten dus 9 rijen opgeslagen kunnen worden op de FPGA, dit is het buffergeheugen. Dit buffergeheugen is heel wat kleiner dan bij het rij-kolomgebaseerde algoritme en kan zich op de FPGA bevinden. Op de figuren 5.7 en 5.8 is dit schematisch weergegeven. 38

45 Om een beeld te transformeren zijn slechts half zoveel toegangen tot het DDRgeheugen nodig als bij het rij-kolomgebaseerde algoritme. Dit komt omdat de elementen van het beeld zowel langs de rijen als langs de kolommen getransformeerd worden in een stap. Er is heel wat meer geheugen nodig op de FPGA: er moeten 9 rijen opgeslagen worden in plaats van 1. Dit vormt geen beperking aangezien slechts 0,5% van het geheugen gebruikt wordt bij het rij-kolomgebaseerde algoritme. Een nadeel is het veranderen van kolom. Wanneer de filterimplementatie van figuur 5.6 gebruikt wordt, zijn er vijf klokcycli nodig vooraleer een geldige uitgangswaarde beschikbaar is. Voor elke waarde zijn dus 5 klokcycli nodig. Een andere mogelijkheid is dan om het FIR-filter te implementeren zoals weergegeven op figuur 5.5. Deze implementatie van het filter zou trager kunnen zijn Diepte-eerst Figuur 5.9: Eendimensionale transformatie: diepte-eerst Dit algoritme werkt eerst in de diepte. Eéndimensionaal worden de getransformeerde pixels berekend zoals weergegeven in figuur 5.9. Hierbij worden alle laagdoorlaatwaarden onmiddellijk na productie opnieuw gebruikt in het volgende niveau. Er moeten bijgevolg weinig elementen opgeslagen worden in een buffergeheugen. Een nadeel is dat telkens gewisseld moet worden van niveau. Om een element van niveau 1 te kunnen bepalen, zijn er negen elementen nodig van het originele beeld. Wanneer telkens slechts twee elementen van het oorspronkelijke signaal naar de FPGA gekopieerd worden, moeten de zeven vorige waarden ook nog beschikbaar blijven. Het geheugen waarin deze elementen opgeslagen zijn, noemt men het overlapgeheugen. Voor elk niveau, behalve het hoogste, moet er zo n overlapgeheugen aanwezig zijn. Op het tijdstip t 1, op figuur 5.9, bevat het overlapgeheugen de elementen met de grijze achtergrond. Het filter moet elke keer opnieuw ingeladen worden met de 7 voorgaande laagdoorlaatwaarden van het juiste niveau. Dit zorgt voor een vertraging, afkomstig van de vele geheugentoegangen die hierbij nodig zijn. In de tweedimensionale uitbreiding worden alle elementen bepaald zodra de vereiste informatie beschikbaar is. Er wordt begonnen met de rijen te transformeren. Na 39

46 transformatie van vijf rijen kan opnieuw van elke kolom een laag- en een hoogdoorlaatelement bepaald worden. Wanneer van alle kolommen het eerste element bepaald is, is er een een volledige rij beschikbaar van de transformatie over één niveau. Het laagdoorlaatgedeelte van deze rij kan dan over het volgende niveau getransformeerd worden... Wanneer een beeld op deze manier getransformeerd wordt, moet er dus overlapgeheugen aanwezig zijn voor zowel de rijen als de kolommen. Hierop wordt later dieper ingegaan. Er moet ook zeer dikwijls van kolom of van niveau veranderd worden. Dit leidt tot zeer veel geheugentoegangen op de FPGA. Al deze veranderingen van kolom of niveau maken de controle van het geheel ingewikkeld. Het aantal geheugentoegangen naar het DDR-geheugen is hier minimaal: alle elementen worden 1 keer gelezen en terug geschreven. 5.3 Blokgebaseerde wavelettransformatie Deze implementatie gebruikt een gemengde aanpak. Het doel hiervan is om het grote aantal toegangen tot het DDR-geheugen klein te houden, maar tegelijk niet te veel van kolom of niveau te moeten verspringen. Figuur 5.10: Gemengde decompositie Eéndimensionaal worden de getransformeerde pixels berekend zoals weergegeven in figuur Er wordt telkens een interval uit het originele signaal verwerkt. Dit interval is net groot genoeg om een element te kunnen bepalen van het hoogste niveau. Voor een transformatie over L niveau s worden in elke stap dus 2 L elementen verwerkt. In het begin van de transformatie zijn echter 5 elementen nodig van niveau L 1 om een laag- en een hoogdoorlaatelement van niveau L te kunnen bepalen. α 1 = 5 (5.4) α L = 4 2 L 1 + α L 1 (5.5) = 4 (2 L 1) + 1 = 2 L+2 3 (5.6) 40

47 Voor L = 1 zijn er in de eerste stap 5 elementen nodig om het eerste element van de transformatie te kunnen bepalen. Om van L 1 niveau s over te gaan naar L niveau s, zijn er 4 extra laagdoorlaatelementen nodig van niveau L 1. Van het oorspronkelijke signaal zijn 4 2 L 1 extra elementen nodig om die 4 elementen op niveau L 1 te kunnen bepalen. Dit verklaart de uitdrukking 5.5. Uit de recursieve formule en de uitgangswaarde kan de uitdrukking 5.6 afgeleid worden voor α L. Figuur 5.11: Indeling van een beeld in blokken Op het einde van het signaal, wanneer minder dan 2 L elementen over zijn, wordt de rest van het signaal in één interval verwerkt. Om deze werkwijze te kunnen gebruiken is ook hier overlapgeheugen nodig. Dit is noodzakelijk om zonder de elementen die in het vorige interval getransformeerd zijn, de volgende elementen te kunnen bepalen. Hiervoor zijn namelijk nog zeven elementen nodig uit het vorige interval. Het overlapgeheugen op het ogenblik t 1 is in figuur 5.10 aangegeven met een grijze achtergrond. Dit zijn de enige waarden die nog beschikbaar moeten blijven. De elementen die deel uitmaken van het getransformeerde signaal zijn niet meer nodig voor de bepaling van de rest van de transformatie. Op het ene laagdoorlaatelement van het hoogste niveau na, zijn dit immers allemaal hoogdoorlaatelementen. De opdeling van het ingangssignaal in intervallen wordt omgezet in een opdeling in blokken voor een beeld. De transformaties over de rijen en de kolommen zijn eigenlijk eendimensionale trans- 41

48 (a) originele blok (b) blok na rijtransformatie over 1 niveau (c) blok na transformatie over 1 niveau (d) blok na transformatie over 2 niveau s Figuur 5.12: Transformatie van een blok over 2 niveau s formaties. De opdeling in blokken weerspiegelt dit. In het begin van een rij is een blok α L kolommen breed, in regime 2 L. Op het einde van een rij worden de laatste kolommen van het beeld in een blok verwerkt. Voor de kolommen geldt hetzelfde. Deze opdeling is weergegeven in figuur De cijfers in de blokken geven de volgorde aan waarin de blokken overlopen worden. Figuur 5.13: Pixels die bepaald worden bij transformatie van één blok De blokken worden zo ver mogelijk getransformeerd. Door de keuze van de blokgrootte kan bij transformeren van een blok telkens 1 element van het hoogste niveau bepaald worden. Op figuur 5.12 is deze werkwijze weergegeven voor transformatie over 2 niveau s van een blok in regime. Eerst worden alle rijen van het blok over 1 niveau getransformeerd (figuur 5.12b). Daarna worden de kolommen getransformeerd (figuur 5.12c). De zwarte elementen op figuur 5.12c worden vervolgens nog een niveau getransformeerd. Het resultaat hiervan is te zien in figuur 5.12d. De laag- en hoogdoorlaatelementen kunnen niet onmiddellijk gescheiden worden. Bij de rijtransformatie bijvoorbeeld worden in het begin van de eerste rij de eerste 2 elementen ervan gelezen. Daaruit wordt onmiddellijk een laag- en een hoogdoor- 42

49 laatwaarde bepaald, met behulp van de elementen uit het overlapgeheugen. Deze moeten bewaard worden op de plaats waar net twee elementen gelezen worden, alle andere elementen zijn nog nodig voor bij transformatie van de rest van het blok. Op figuur 5.13 is weergegeven welke elementen van het getransformeerde beeld bepaald worden bij transformatie van een blok. Al bij transformatie van het eerste blok worden ook elementen bepaald die zich elders in het beeld bevinden, op deze plaatsen moet verder nog gelezen worden. Het oorspronkelijke beeld kan hierdoor niet overschreven worden. (a) rijen (b) kolommen Figuur 5.14: Overlapgeheugen Het overlapgeheugen uit de ééndimensionale transformatie wordt uitgebreid. Horizontaal is voor het laagste niveau overlapgeheugen nodig voor alle rijen van het blok. Voor een niveau hoger is nog slechts voor de helft van de rijen overlapgeheugen nodig. De reden hiervoor is dat deze transformatie alleen gebeurt op de laagdoorlaatelementen van niveau 1. Het overlapgeheugen voor de rijen is te zien in figuur 5.14a. Verticaal is heel wat meer overlapgeheugen nodig omdat de blokken rij per rij overlopen worden. Bij nemen van het volgende blok wordt overgegaan naar nieuwe kolommen. Voor alle kolommen in het beeld is overlapgeheugen nodig op het laagste niveau. Het overlapgeheugen voor de kolommen is te zien in figuur 5.14b. Op de FPGA wordt een overlapgeheugen met vaste grootte gebruikt. Deze grootte is beperkt. Het aantal kolommen in het beeld dat getransformeerd wordt is bijgevolg ook beperkt. Het aantal rijen wordt niet beperkt door de grootte van het overlapgeheugen. 43

50 Figuur 5.15: Blokschema van de blokgebaseerde implementatie 44

Herconfigureerbare Hardware in Ieders Bereik

Herconfigureerbare Hardware in Ieders Bereik Herconfigureerbare Hardware in Ieders Bereik Prof. Dirk Stroobandt Universiteit Gent Vakgroep ELIS Onderzoeksgroep PARIS http://www.elis.ugent.be/~dstr/ Overzicht Nood aan digitale verwerking van gegevens

Nadere informatie

DEC SDR DSP project 2017 (2)

DEC SDR DSP project 2017 (2) DEC SDR DSP project 2017 (2) Inhoud: DSP software en rekenen Effect van type getallen (integer, float) Fundamenten onder DSP Lezen van eenvoudige DSP formules x[n] Lineariteit ( x functie y dus k maal

Nadere informatie

Hardware-ontwerp van een bewegingsschatter voor videocompressie

Hardware-ontwerp van een bewegingsschatter voor videocompressie Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Hardware-ontwerp van een bewegingsschatter voor videocompressie door Peter Bertels

Nadere informatie

FPGA-gebaseerde instructiesetuitbreiding voor blokgebaseerde wavelettransformatie

FPGA-gebaseerde instructiesetuitbreiding voor blokgebaseerde wavelettransformatie Faculteit Ingenieurswetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout FPGA-gebaseerde instructiesetuitbreiding voor blokgebaseerde wavelettransformatie

Nadere informatie

Inleiding Digitale Techniek

Inleiding Digitale Techniek Inleiding Digitale Techniek Week 4 Binaire optellers, tellen, vermenigvuldigen, delen Jesse op den Brouw INLDIG/25-26 Optellen Optellen is één van meest gebruikte rekenkundige operatie in digitale systemen.

Nadere informatie

Vectoren, matrices en beeld. Figuur: Lena. Albert-Jan Yzelman

Vectoren, matrices en beeld. Figuur: Lena. Albert-Jan Yzelman Vectoren, matrices en beeld Figuur: Lena Vectoren, matrices en beeld Hoe coderen we foto s zodat ze te gebruiken zijn op computers? Wat verwachten we van de bestandsgrootte? Hoe verkleinen we de benodigde

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE Tentamen Computers bij fysische experimenten (3BB20) op dinsdag 25 oktober 2005 Het tentamen duurt 90 minuten en wordt gemaakt zonder

Nadere informatie

Departement industriële wetenschappen en technologie

Departement industriële wetenschappen en technologie Departement industriële wetenschappen en technologie Universitaire Campus, gebouw B B-3590 DIEPENBEEK Tel.: 011-23 07 90 Fax: 011-23 07 99 Aansturen en testen van een hybride infrarood beeldopnemer Abstract

Nadere informatie

OPTIMALISATIE VAN MPEG-4-WAVELETCODE VOOR DE TRIMEDIAPROCESSOR

OPTIMALISATIE VAN MPEG-4-WAVELETCODE VOOR DE TRIMEDIAPROCESSOR E99/EL/VLSI1 Diepenbeek, 1 juni 1999 OPTIMALISATIE VAN MPEG-4-WAVELETCODE VOOR DE TRIMEDIAPROCESSOR Abstract van het eindwerk van Bert BRANS en Benjamin GOYVAERTS Industrieel Ingenieur Elektriciteit optie

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE @! TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE Tentamen Computers bij fysische experimenten (3BB0) op donderdag 3 november 006, 10:30-1:00 Het tentamen duurt 90 minuten en wordt

Nadere informatie

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN Vakcode: 8D. Datum: Donderdag 8 juli 4. Tijd: 14. 17. uur. Plaats: MA 1.44/1.46 Lees dit vóórdat je begint! Maak iedere opgave op een apart vel. Schrijf je

Nadere informatie

Digitale systemen. Hoofdstuk 6. 6.1 De digitale regelaar

Digitale systemen. Hoofdstuk 6. 6.1 De digitale regelaar Hoofdstuk 6 Digitale systemen Doelstellingen 1. Weten dat digitale systemen andere stabiliteitsvoorwaarden hebben In deze tijd van digitalisatie is het gebruik van computers in regelkringen alom.denk maar

Nadere informatie

Digitale Systemen (ET1 410)

Digitale Systemen (ET1 410) Digitale Systemen (ET1 410) Arjan van Genderen Stephan Wong Faculteit EWI Technische Universiteit Delft Cursus 2011 28-4-2011 EE1 410 (Stephan Wong) Pagina 1 Verschil simulatie en synthese Simulatie: functioneel

Nadere informatie

Informatica: C# WPO 11

Informatica: C# WPO 11 Informatica: C# WPO 11 1. Inhoud Pass by reference (ref, out), recursie, code opdelen in verschillende codebestanden 2. Oefeningen Demo 1: Swapfunctie Demo 2: TryParse(int) Demo 3: Recursion Tree Demo

Nadere informatie

II. ZELFGEDEFINIEERDE FUNCTIES

II. ZELFGEDEFINIEERDE FUNCTIES II. ZELFGEDEFINIEERDE FUNCTIES In Excel bestaat reeds een uitgebreide reeks van functies zoals SOM, GEMIDDELDE, AFRONDEN, NU enz. Het is de bedoeling om functies aan deze lijst toe te voegen door in Visual

Nadere informatie

Wavelets Een Introductie

Wavelets Een Introductie Wavelets Een Introductie Joachim Taelman Katholieke Universiteit Leuven Faculteit ingenieurswetenschappen, Departement elektrotechniek ESAT-SCD (SISTA) Faculteit beweging en revalidatie, Departement biomedische

Nadere informatie

Zwart-wit en grijstinten

Zwart-wit en grijstinten Zwart-wit en grijstinten 1. Kleur elk vakje dat een stukje lijn bevat zwart. Opdracht 1 is een eenvoudige opdracht vergelijkbaar met wat de computer op het beeldscherm ook doet. Normaal zie je dit niet

Nadere informatie

DEC DSP SDR 5 Dicrete Fourier Transform

DEC DSP SDR 5 Dicrete Fourier Transform DEC DSP SDR 5 Dicrete Fourier Transform Familie van Fourier transformaties Fourier Transform Fourier Series Discrete Time Fourier Transform Discrete Fourier Transform Berekening van een frequentie spectrum

Nadere informatie

Optimalisatie van een wavelet video-encoder/decoder in software gebruik makend van multimedia-instructies

Optimalisatie van een wavelet video-encoder/decoder in software gebruik makend van multimedia-instructies Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Optimalisatie van een wavelet video-encoder/decoder in software gebruik makend

Nadere informatie

en-splitsingen: een aantal alternatieven worden parallel toegepast, of-splitsingen: van een aantal alternatieven wordt er één toegepast,

en-splitsingen: een aantal alternatieven worden parallel toegepast, of-splitsingen: van een aantal alternatieven wordt er één toegepast, Kansrekening voor Informatiekunde, 25 Les 8 Proces analyse Veel processen laten zich door netwerken beschrijven, waarin knopen acties aangeven en opdrachten langs verbindingen tussen de knopen verwerkt

Nadere informatie

Practica bij het vak. Inleiding tot de Elektrotechniek: Practicum 2 Analoge versus digitale signalen en hun overdracht

Practica bij het vak. Inleiding tot de Elektrotechniek: Practicum 2 Analoge versus digitale signalen en hun overdracht Elektronica en Informatiesystemen Practica bij het vak Inleiding tot de Elektrotechniek: Practicum 2 Analoge versus digitale signalen en hun overdracht door Prof. dr. ir. J. Van Campenhout ir. Sean Rul

Nadere informatie

Wat is een digitale foto

Wat is een digitale foto Inleiding: basiskennis We beoefenen allemaal de fotografie in de hobbysfeer. Sommigen al jaren, anderen sinds kort. Maar we weten allemaal wat een camera is, en een computer, en een printer. We weten allemaal

Nadere informatie

opgave 1. (2 pt) kies het juiste antwoord; motiveer kort je antwoord s b) de overdrachtsfunctie van een systeem is H( s) =

opgave 1. (2 pt) kies het juiste antwoord; motiveer kort je antwoord s b) de overdrachtsfunctie van een systeem is H( s) = ECHNISCHE UNIVERSIEI EINDHOVEN FAC. BIOMEDISCHE ECHNOLOGIE Schriftelijk tentamen Signaal en Systeemanalyse (8E8) gehouden op maandag 3 oktober van 9:-: (4 opgaven) - Je mag bij dit tentamen gebruik maken

Nadere informatie

vandaag is Annie twee jaar jonger dan Ben en Cees samen

vandaag is Annie twee jaar jonger dan Ben en Cees samen Hoofdstuk I Lineaire Algebra Les 1 Stelsels lineaire vergelijkingen Om te beginnen is hier een puzzeltje: vandaag is Annie twee jaar jonger dan Ben en Cees samen over vijf jaar is Annie twee keer zo oud

Nadere informatie

Tentamen 8D040 - Basis beeldverwerking

Tentamen 8D040 - Basis beeldverwerking Tentamen 8D040 - Basis beeldverwerking 6 augustus 2008, 14.00-17.00 uur Vraag 1. (1.5 punten) Gegeven het binaire beeld Components (figuur 1). De componenten in dit beeld moeten automatisch gesegmenteerd

Nadere informatie

Noordhoff Uitgevers bv

Noordhoff Uitgevers bv V-a Hoofdstuk - Transformaties Voorkennis: Standaardfuncties bladzijde 70 f () = g () = sin h() = k () = log p () = m () = n () = b D f = [0, en B f = [0, ; D g = en B g =[, ] ; D h = en B h = 0, ; D k

Nadere informatie

Zomercursus Wiskunde. Module 1 Algebraïsch rekenen (versie 22 augustus 2011)

Zomercursus Wiskunde. Module 1 Algebraïsch rekenen (versie 22 augustus 2011) Katholieke Universiteit Leuven September 011 Module 1 Algebraïsch rekenen (versie augustus 011) Inhoudsopgave 1 Rekenen met haakjes 1.1 Uitwerken van haakjes en ontbinden in factoren............. 1. De

Nadere informatie

Tentamen Inleiding Meten Vakcode 8E020 22 april 2009, 9.00-12.00 uur

Tentamen Inleiding Meten Vakcode 8E020 22 april 2009, 9.00-12.00 uur Tentamen Inleiding Meten Vakcode 8E april 9, 9. -. uur Dit tentamen bestaat uit opgaven. Indien u een opgave niet kunt maken, geeft u dan aan hoe u de opgave zou maken. Dat kan een deel van de punten opleveren.

Nadere informatie

Elementaire rekenvaardigheden

Elementaire rekenvaardigheden Hoofdstuk 1 Elementaire rekenvaardigheden De dingen die je niet durft te vragen, maar toch echt moet weten Je moet kunnen optellen en aftrekken om de gegevens van de patiënt nauwkeurig bij te kunnen houden.

Nadere informatie

Beeldcompressie. VWO Masterclass 08. 21 oktober 2008

Beeldcompressie. VWO Masterclass 08. 21 oktober 2008 Beeldcompressie VWO Masterclass 08 21 oktober 2008 1 Voorbereiding In dit practicum doen we hetzelfde als in het hoorcollege (Fourier-transformatie op geluid), maar dan voor plaatjes. Jullie werken in

Nadere informatie

Hoofdstuk 3 - Transformaties

Hoofdstuk 3 - Transformaties Hoofdstuk - Transformaties Voorkennis: Standaardfuncties bladzijde 70 V-a f () = g () = sin h () = k () = log m () = n () = p () = b D f = [0, en B f = [0, ; D g = en B g =[, ] ; D h = en B h = 0, ; D

Nadere informatie

Sequentiële Logica. Processoren 24 november 2014

Sequentiële Logica. Processoren 24 november 2014 Sequentiële Logica Processoren 24 november 2014 Inhoud Eindige automaten Schakelingen met geheugen Realisatie van eindige automaten Registers, schuifregisters, tellers, etc. Geheugen Herinnering van week

Nadere informatie

Lights Out. 1 Inleiding

Lights Out. 1 Inleiding Lights Out 1 Inleiding Het spel Lights Out is een elektronisch spel dat gelanceerd werd in 1995 door Tiger Electronics. Het originele spel heeft een bord met 25 lampjes in een rooster van 5 rijen en 5

Nadere informatie

1 Rekenen in eindige precisie

1 Rekenen in eindige precisie Rekenen in eindige precisie Een computer rekent per definitie met een eindige deelverzameling van getallen. In dit hoofdstuk bekijken we hoe dit binnen een computer is ingericht, en wat daarvan de gevolgen

Nadere informatie

Modelleren C Appels. Christian Vleugels Sander Verkerk Richard Both. 2 april 2010. 1 Inleiding 2. 3 Data 3. 4 Aanpak 3

Modelleren C Appels. Christian Vleugels Sander Verkerk Richard Both. 2 april 2010. 1 Inleiding 2. 3 Data 3. 4 Aanpak 3 Modelleren C Appels Christian Vleugels Sander Verkerk Richard Both 2 april 2010 Inhoudsopgave 1 Inleiding 2 2 Probleembeschrijving 2 3 Data 3 4 Aanpak 3 5 Data-analyse 4 5.1 Data-analyse: per product.............................

Nadere informatie

toelatingsexamen-geneeskunde.be Gebaseerd op nota s tijdens het examen, daarom worden niet altijd antwoordmogelijkheden vermeld.

toelatingsexamen-geneeskunde.be Gebaseerd op nota s tijdens het examen, daarom worden niet altijd antwoordmogelijkheden vermeld. Wiskunde juli 2009 Laatste aanpassing: 29 juli 2009. Gebaseerd op nota s tijdens het examen, daarom worden niet altijd antwoordmogelijkheden vermeld. Vraag 1 Wat is de top van deze parabool 2 2. Vraag

Nadere informatie

Scan-pad technieken. Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave):

Scan-pad technieken. Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave): Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave): D is de normale data ingang C is de normale fase 1 klok I is de data ingang van het shift-regiester A is de klok

Nadere informatie

Arnout Devos 5WeWi nr.3. Radioactief verval

Arnout Devos 5WeWi nr.3. Radioactief verval Doel Radioactief verval We willen meer te weten komen over het radioactief verval van een radioactieve stof. Met ons onderzoek zullen we de halfwaardetijd van onze stof bepalen en hiermee kunnen we de

Nadere informatie

Lineaire algebra 1 najaar Lineaire codes

Lineaire algebra 1 najaar Lineaire codes Lineaire algebra 1 najaar 2008 Lineaire codes Bij het versturen van digitale informatie worden in principe ketens van bits verstuurd die de waarde 0 of 1 kunnen hebben. Omdat de transmissiekanalen door

Nadere informatie

Combinatorische schakelingen

Combinatorische schakelingen Practicum 1: Combinatorische schakelingen Groep A.6: Lennert Acke Pieter Schuddinck Kristof Vandoorne Steven Werbrouck Inhoudstabel 1. Doelstellingen... 2 2. Voorbereiding... 3 3. Hardware-practicum...

Nadere informatie

Rekenen aan wortels Werkblad =

Rekenen aan wortels Werkblad = Rekenen aan wortels Werkblad 546121 = Vooraf De vragen en opdrachten in dit werkblad die vooraf gegaan worden door, moeten schriftelijk worden beantwoord. Daarbij moet altijd duidelijk zijn hoe de antwoorden

Nadere informatie

ONDERDRUKKEN VAN LEK NAAR ZIJLOBBEN BIJ HET BEREKENEN VAN AUTO- EN KRUISSPECTRA M.B.V. PAST FOURIER TRANSFORMS

ONDERDRUKKEN VAN LEK NAAR ZIJLOBBEN BIJ HET BEREKENEN VAN AUTO- EN KRUISSPECTRA M.B.V. PAST FOURIER TRANSFORMS ONDERDRUKKEN VAN LEK NAAR ZIJLOBBEN BIJ HET BEREKENEN VAN AUTO- EN KRUISSPECTRA M.B.V. PAST FOURIER TRANSFORMS G. Klopman Waterloopkundig Laboratorium 24 februari 1989 1. Inleiding Bij het bepalen van

Nadere informatie

Morenaments Ornamenten met symmetrie. Werkblad vooraf met begeleidende tekst en oplossingen

Morenaments Ornamenten met symmetrie. Werkblad vooraf met begeleidende tekst en oplossingen Morenaments Ornamenten met symmetrie Fien Aelter, Liesje Knaepen en Kristien Vanhuyse, studenten SLO wiskunde KU Leuven Werkblad vooraf met begeleidende tekst en oplossingen Dit werklad is een voorbereiding

Nadere informatie

Fourier transformatie

Fourier transformatie Les 8 Fourier transformatie 8.1 Periodieke functies met perioden verschillend van In de vorige les hebben we naar de Fourier reeksen voor periodieke functies met periode gekeken. De reden hiervoor was,

Nadere informatie

Fourier transformatie

Fourier transformatie Wiskunde voor kunstmatige intelligentie, 7/8 Les 8 Fourier transformatie 8.1 Periodieke functies met perioden verschillend van In de vorige les hebben we naar de Fourier reeksen voor periodieke functies

Nadere informatie

dens het encoderen. Een hoge QP duidt op grove quantisatie van residuele data en leidt bijgevolg tot een lagere kwaliteit. Door de ruwere benadering

dens het encoderen. Een hoge QP duidt op grove quantisatie van residuele data en leidt bijgevolg tot een lagere kwaliteit. Door de ruwere benadering Samenvatting De beschikbaarheid en verspreiding van video kent de laatste jaren een steile groei. Waar nog geen vijftien jaar geleden de bandbreedte van netwerken ontoereikend was om streaming video (aan

Nadere informatie

Hoofdstuk 6: Digitale signalen

Hoofdstuk 6: Digitale signalen Hoofdstuk 6: Digitale signalen 6. Algemeenheden Het decimale talstelsel is het meest gebruikte talstelsel om getallen voor te stellen. Hierin worden symbolen gebruikt ( t.e.m. 9 ) die ondubbelzinning de

Nadere informatie

Zomercursus Wiskunde. Katholieke Universiteit Leuven Groep Wetenschap & Technologie. September 2008

Zomercursus Wiskunde. Katholieke Universiteit Leuven Groep Wetenschap & Technologie. September 2008 Katholieke Universiteit Leuven September 008 Algebraïsch rekenen (versie 7 juni 008) Inleiding In deze module worden een aantal basisrekentechnieken herhaald. De nadruk ligt vooral op het symbolisch rekenen.

Nadere informatie

TRILLINGEN EN GOLVEN HANDOUT FOURIER

TRILLINGEN EN GOLVEN HANDOUT FOURIER TRILLINGEN EN GOLVEN HANDOUT FOURIER Cursusjaar 2009 / 2010 2 Inhoudsopgave 1 FOURIERANALYSE 5 1.1 INLEIDING............................... 5 1.2 FOURIERREEKSEN.......................... 5 1.3 CONSEQUENTIES

Nadere informatie

Het ontwerpen van entropie-encodering op FPGA als onderdeel van een wavelet-gebaseerde video-encoder

Het ontwerpen van entropie-encodering op FPGA als onderdeel van een wavelet-gebaseerde video-encoder Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: Prof. dr. ir. J. Van Campenhout Het ontwerpen van entropie-encodering op FPGA als onderdeel van een wavelet-gebaseerde

Nadere informatie

Cover Page. The handle holds various files of this Leiden University dissertation.

Cover Page. The handle   holds various files of this Leiden University dissertation. Cover Page The handle http://hdl.handle.net/1887/39638 holds various files of this Leiden University dissertation. Author: Pelt D.M. Title: Filter-based reconstruction methods for tomography Issue Date:

Nadere informatie

Vak naam : Beeldbewerking Docent : Lb Vak code : BBW1N1 Datum : Klas : NH43 Tijd : uur Aantal bladzijden : 2 Lok : T40

Vak naam : Beeldbewerking Docent : Lb Vak code : BBW1N1 Datum : Klas : NH43 Tijd : uur Aantal bladzijden : 2 Lok : T40 Vak naam : Beeldbewerking Docent : Lb Vak code : BBW1N1 Datum : 04-01-2000 Klas : NH43 Tijd : 15.05 uur Aantal bladzijden : 2 Lok : T40 Bij dit tentamen is het toegestaan gebruik te maken van dictaten,

Nadere informatie

1. Gegeven x Y, waaraan is de fouriergetransformeerde gelijk? f g 1

1. Gegeven x Y, waaraan is de fouriergetransformeerde gelijk? f g 1 1. Gegeven x Y, waaraan is de fouriergetransformeerde gelijk? (a) X ỹ (b) x Y 2π (c) 2π X ỹ (d) X y Vanwege Volgt er Of dus antwoord (1a). x X 2π x f g 1 2π F G x Y X ỹ 2. 4 personen lenen eenzelfde bedrag

Nadere informatie

http://www.playgarden.com/ Inleiding 8

http://www.playgarden.com/ Inleiding 8 http://www.playgarden.com/ Inleiding 8. Inleiding.. Wat is zippen? Regelmatig moet je grote bestanden van de ene computer naar de andere doorgegeven. Dit doe je dan via het internet, via een netwerk, met

Nadere informatie

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0.

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0. REKENEN VIJFDE KLAS en/of ZESDE KLAS Luc Cielen 1. REGELS VAN DEELBAARHEID. Luc Cielen: Regels van deelbaarheid, grootste gemene deler en kleinste gemeen veelvoud 1 Deelbaarheid door 10, 100, 1000. Door

Nadere informatie

Discrete Fourier transformatie

Discrete Fourier transformatie Wiskunde voor kunstmatige intelligentie, 7/8 Les Discrete Fourier transformatie We hebben in de vorige lessen gezien hoe we met behulp van de Fourier transformatie voor een in het tijdsdomein gegeven signaal

Nadere informatie

Numerieke aspecten van de vergelijking van Cantor. Opgedragen aan Th. J. Dekker. H. W. Lenstra, Jr.

Numerieke aspecten van de vergelijking van Cantor. Opgedragen aan Th. J. Dekker. H. W. Lenstra, Jr. Numerieke aspecten van de vergelijking van Cantor Opgedragen aan Th. J. Dekker H. W. Lenstra, Jr. Uit de lineaire algebra is bekend dat het aantal oplossingen van een systeem lineaire vergelijkingen gelijk

Nadere informatie

Vergelijkingen met breuken

Vergelijkingen met breuken Vergelijkingen met breuken WISNET-HBO update juli 2013 De bedoeling van deze les is het doorwerken van begin tot einde met behulp van pen en papier. 1 Oplossen van gebroken vergelijkingen Kijk ook nog

Nadere informatie

te vermenigvuldigen, waarbij N het aantal geslagen Nederlandse munten en B het aantal geslagen buitenlandse munten zijn. Het resultaat is de vector

te vermenigvuldigen, waarbij N het aantal geslagen Nederlandse munten en B het aantal geslagen buitenlandse munten zijn. Het resultaat is de vector Les 3 Matrix product We hebben gezien hoe we matrices kunnen gebruiken om lineaire afbeeldingen te beschrijven. Om het beeld van een vector onder een afbeelding te bepalen hebben we al een soort product

Nadere informatie

Getallenleer Inleiding op codeertheorie. Cursus voor de vrije ruimte

Getallenleer Inleiding op codeertheorie. Cursus voor de vrije ruimte Getallenleer Inleiding op codeertheorie Liliane Van Maldeghem Hendrik Van Maldeghem Cursus voor de vrije ruimte 2 Hoofdstuk 1 Getallenleer 1.1 Priemgetallen 1.1.1 Definitie en eigenschappen Een priemgetal

Nadere informatie

LES 3 Analoog naar digitaal conversie

LES 3 Analoog naar digitaal conversie LES 3 Analoog naar digitaal conversie Misschien is het goed om eerst te definiëren wat analoog en digitaal is en wat de de voor en nadelen hiervan zijn. Analoog naar digitaal conversie wordt voor veel

Nadere informatie

3 Wat is een stelsel lineaire vergelijkingen?

3 Wat is een stelsel lineaire vergelijkingen? In deze les bekijken we de situatie waarin er mogelijk meerdere vergelijkingen zijn ( stelsels ) en meerdere variabelen, maar waarin elke vergelijking er relatief eenvoudig uitziet, namelijk lineair is.

Nadere informatie

We zullen in deze les kijken hoe we netwerken kunnen analyseren, om bijvoorbeeld de volgende vragen te kunnen beantwoorden:

We zullen in deze les kijken hoe we netwerken kunnen analyseren, om bijvoorbeeld de volgende vragen te kunnen beantwoorden: Wiskunde voor kunstmatige intelligentie, 24 Les 5 Proces analyse Veel processen laten zich door netwerken beschrijven, waarin een aantal knopen acties aangeeft en opdrachten langs verbindingen tussen de

Nadere informatie

Random-Getallen. Tristan Demont en Mark van der Boor en

Random-Getallen. Tristan Demont en Mark van der Boor en Random-Getallen Tristan Demont en Mark van der Boor 0768931 en 0772942 18 januari 2013 Begeleider: Relinde Jurrius Opdrachtgever: Berry Schoenmakers Modelleren B, 2WH02 Technische Universiteit Eindhoven

Nadere informatie

PROJECT 1: Kinematics of a four-bar mechanism

PROJECT 1: Kinematics of a four-bar mechanism KINEMATICA EN DYNAMICA VAN MECHANISMEN PROJECT 1: Kinematics of a four-bar mechanism Lien De Dijn en Celine Carbonez 3 e bachelor in de Ingenieurswetenschappen: Werktuigkunde-Elektrotechniek Prof. Dr.

Nadere informatie

Overzicht Fourier-theorie

Overzicht Fourier-theorie B Overzicht Fourier-theorie In dit hoofdstuk geven we een overzicht van de belangrijkste resultaten van de Fourier-theorie. Dit kan als steun dienen ter voorbereiding op het tentamen. Fourier-reeksen van

Nadere informatie

3. Structuren in de taal

3. Structuren in de taal 3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we

Nadere informatie

Grafieken van veeltermfuncties

Grafieken van veeltermfuncties (HOOFDSTUK 43, uit College Mathematics, door Frank Ayres, Jr. and Philip A. Schmidt, Schaum s Series, McGraw-Hill, New York; dit is de voorbereiding voor een uit te geven Nederlandse vertaling). Grafieken

Nadere informatie

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets) TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Nadere informatie

Datum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF--- --- Reken om naar EURO---

Datum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF--- --- Reken om naar EURO--- 3UREOHPHQRSORVVHQPHW9%$WRHSDVVLQJHQELMGHHO Naam. NR : Klas. PC : Datum. 23*$9( Hieronder vind je het algoritme om een bedrag in BEF om te rekenen naar EURO. Zet het algoritme om in programmacode. Noem

Nadere informatie

Getallensystemen, verzamelingen en relaties

Getallensystemen, verzamelingen en relaties Hoofdstuk 1 Getallensystemen, verzamelingen en relaties 1.1 Getallensystemen 1.1.1 De natuurlijke getallen N = {0, 1, 2, 3,...} N 0 = {1, 2, 3,...} 1.1.2 De gehele getallen Z = {..., 4, 3, 2, 1, 0, 1,

Nadere informatie

Percentage afwijkingen groter dan vijf decibel

Percentage afwijkingen groter dan vijf decibel Om beter op zoek te kunnen gaan waar er verbeteringen kunnen toegevoegd worden aan de algoritmes heb ik een hulpfunctie gemaakt die in plaats van het interpoleren tussen fingerprints slechts de positie

Nadere informatie

Uitwerking studie stimulerende toets Embedded Signal Processing (ESP)

Uitwerking studie stimulerende toets Embedded Signal Processing (ESP) Uitwerking studie stimulerende toets Embedded Signal Processing (ESP) Cursus code 259, Dinsdag 7 maart 29, 3:3h 7:h. U mag gebruiken: uw eigen aantekeningen, de uitgeprinte college sheets van Teletop en

Nadere informatie

Wiskunde Vraag 1. Vraag 2. Vraag 3. Vraag 4 21/12/2008

Wiskunde Vraag 1. Vraag 2. Vraag 3. Vraag 4 21/12/2008 Wiskunde 007- //008 Vraag Veronderstel dat de concentraties in het bloed van stof A en van stof B omgekeerd evenredig zijn en positief. Als de concentratie van stof A met p % toeneemt, dan zal de concentratie

Nadere informatie

Exponentiële Functie: Toepassingen

Exponentiële Functie: Toepassingen Exponentiële Functie: Toepassingen 1 Overgang tussen exponentiële functies en lineaire functies Wanneer we werken met de exponentiële functie is deze niet altijd gemakkelijk te herkennen. Daarom proberen

Nadere informatie

Uitleg van de Hough transformatie

Uitleg van de Hough transformatie Uitleg van de Hough transformatie Maarten M. Fokkinga, Joeri van Ruth Database groep, Fac. EWI, Universiteit Twente Versie van 17 mei 2005, 10:59 De Hough transformatie is een wiskundige techniek om een

Nadere informatie

Fractale dimensie. Eline Sommereyns 6wwIi nr.9

Fractale dimensie. Eline Sommereyns 6wwIi nr.9 Fractale dimensie Eline Sommereyns 6wwIi nr.9 Inhoudstabel Inleiding... 3 Gehele dimensie... 4 Begrip dimensie... 4 Lengte, breedte, hoogte... 4 Tijd-ruimte... 4 Fractale dimensie... 5 Fractalen... 5 Wat?...

Nadere informatie

PCI Ontwikkelplatformen

PCI Ontwikkelplatformen PCI Ontwikkelplatformen Jan Genoe KHLim In dit deel bespreken we de verschillende ontwikkelplatformen die ter beschikking staan om een PCI kaart te ontwikkelen. 1 Ontwikkelplatformen van PCI kaarten Gebruik

Nadere informatie

Sensornetwerk controleert omgeving

Sensornetwerk controleert omgeving Sensornetwerk controleert omgeving Wiskunde repareert imperfectie van een sensornetwerk en spoort zo indringers op. Een draadloos sensornetwerk kan gebruikt worden om een omgeving in de gaten te houden,

Nadere informatie

Bijsluiter Presets 2014 t.b.v. NLT-module Sound Design

Bijsluiter Presets 2014 t.b.v. NLT-module Sound Design Bijsluiter Presets 2014 t.b.v. NLT-module Sound Design Nov 2014 Hier vind je de belangrijkste nieuwe functies en eigenschappen van WaveWizard en enkele opmerkingen over de opdrachten van de module Sound

Nadere informatie

1 Limiet van een rij Het begrip rij Bepaling van een rij Expliciet voorschrift Recursief voorschrift 3

1 Limiet van een rij Het begrip rij Bepaling van een rij Expliciet voorschrift Recursief voorschrift 3 HOOFDSTUK 6: RIJEN 1 Limiet van een rij 2 1.1 Het begrip rij 2 1.2 Bepaling van een rij 2 1.2.1 Expliciet voorschrift 2 1.2.2 Recursief voorschrift 3 1.2.3 Andere gevallen 3 1.2.4 Rijen met de grafische

Nadere informatie

Rekenen: Getallen groep 5 en hoger. Rekenen en schattingen ontdekken. Algebra groep 5 en hoger. Patronen en relaties ontdekken.

Rekenen: Getallen groep 5 en hoger. Rekenen en schattingen ontdekken. Algebra groep 5 en hoger. Patronen en relaties ontdekken. Activiteit 4 Kaarten truc Fout opsporen & herstellen Samenvatting Wanneer data worden opgeslagen op een harde schijf of worden verzonden van de ene computer naar de andere, nemen we aan dat de data niet

Nadere informatie

Aanvullende tekst bij hoofdstuk 1

Aanvullende tekst bij hoofdstuk 1 Aanvullende tekst bij hoofdstuk 1 Wortels uit willekeurige getallen In paragraaf 1.3.5 hebben we het worteltrekalgoritme besproken. Dat deden we aan de hand van de relatie tussen de (van tevoren gegeven)

Nadere informatie

Bespreking Examen Analyse 1 (Augustus 2007)

Bespreking Examen Analyse 1 (Augustus 2007) Bespreking Examen Analyse 1 (Augustus 2007) Vooraf: Zoals het stilletjes aan een traditie is geworden, geef ik hier bedenkingen bij het examen van deze septemberzittijd. Ik zorg ervoor dat deze tekst op

Nadere informatie

GEOGEBRA 4. R. Van Nieuwenhuyze. Hoofdlector wiskunde, lerarenopleiding HUB, Brussel. Auteur Van Basis tot Limiet. roger.van.nieuwenhuyze@skynet.

GEOGEBRA 4. R. Van Nieuwenhuyze. Hoofdlector wiskunde, lerarenopleiding HUB, Brussel. Auteur Van Basis tot Limiet. roger.van.nieuwenhuyze@skynet. ? GEOGEBRA 4 R. Van Nieuwenhuyze Hoofdlector wiskunde, lerarenopleiding HUB, Brussel. Auteur Van Basis tot Limiet. roger.van.nieuwenhuyze@skynet.be Roger Van Nieuwenhuyze GeoGebra 4 Pagina 1 1. Schermen

Nadere informatie

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object. een symbolische naam voor een object. Variabelen Constanten Variabelen Expressies naam : geeft de plaats in het geheugen aan waarde : de inhoud van het object identifier : een rij van letters en/of cijfers

Nadere informatie

2 n 1. OPGAVEN 1 Hoeveel cijfers heeft het grootste bekende Mersenne-priemgetal? Met dit getal vult men 320 krantenpagina s.

2 n 1. OPGAVEN 1 Hoeveel cijfers heeft het grootste bekende Mersenne-priemgetal? Met dit getal vult men 320 krantenpagina s. Hoofdstuk 1 Getallenleer 1.1 Priemgetallen 1.1.1 Definitie en eigenschappen Een priemgetal is een natuurlijk getal groter dan 1 dat slechts deelbaar is door 1 en door zichzelf. Om technische redenen wordt

Nadere informatie

Basisvaardigheden algebra. Willem van Ravenstein. 2012 Den Haag

Basisvaardigheden algebra. Willem van Ravenstein. 2012 Den Haag Basisvaardigheden algebra Willem van Ravenstein 2012 Den Haag 1. Variabelen Rekenenis het werken met getallen. Er zijn vier hoofdbewerkingen: optellen, aftrekken, vermenigvuldigen en delen. Verder ken

Nadere informatie

Praktisch bestaan er enkele eenvoudige methoden om een decimaal getal om te zetten naar een binair getal. We bespreken hier de twee technieken.

Praktisch bestaan er enkele eenvoudige methoden om een decimaal getal om te zetten naar een binair getal. We bespreken hier de twee technieken. Talstelsels 1 Algemeenheden Digitale systemen werken met nullen en enen omdat dit elektronisch gemakkelijke te verwezenlijken is. De transistor kent enkel twee toestanden (geleiden of sperren) Hierdoor

Nadere informatie

2 Elementaire bewerkingen

2 Elementaire bewerkingen Hoofdstuk 2 Elementaire bewerkingen 17 2 Elementaire bewerkingen In dit hoofdstuk leer je hoe werken met binaire getallen en hexadecimale getallen omgezet wordt naar een decimaal getal en omgekeerd. Vervolgens

Nadere informatie

Voorbereiding toelatingsexamen arts/tandarts. Wiskunde: gemiddelden, ongelijkheden enz 23/5/2015. dr. Brenda Casteleyn

Voorbereiding toelatingsexamen arts/tandarts. Wiskunde: gemiddelden, ongelijkheden enz 23/5/2015. dr. Brenda Casteleyn Voorbereiding toelatingsexamen arts/tandarts Wiskunde: gemiddelden, ongelijkheden enz 23/5/2015 dr. Brenda Casteleyn Met dank aan: Atheneum van Veurne (http://www.natuurdigitaal.be/geneeskunde/fysica/wiskunde/wiskunde.htm),

Nadere informatie

Foutdetectie. Toenemend belang van foutdetectie

Foutdetectie. Toenemend belang van foutdetectie Toenemend belang van foutdetectie We verwachten steeds meer van digitale systemen Steeds meer signalen steeds meer storingen Steeds hogere frequentie steeds hogere gevoeligheid aan storingen en foutcorrectie

Nadere informatie

Getalformaten, timers en tellers

Getalformaten, timers en tellers Getalformaten, timers en tellers S_CU CU S PV R CV DEZ CV_BCD S_ODT S TV BI R BCD 1 pagina 1 Getalformaten (16 bits) PG CPU BCD W#16#296 Voorteken (+) 2 9 6 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 Positieve getallen

Nadere informatie

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte Voor deze oefeningenles heb je de handleiding van de uitgedeelde ARM processor nodig. Je kan deze vinden op de website van het

Nadere informatie

(g 0 en n een heel getal) Voor het rekenen met machten geldt ook - (p q) a = p a q a

(g 0 en n een heel getal) Voor het rekenen met machten geldt ook - (p q) a = p a q a Samenvatting wiskunde h4 hoofdstuk 3 en 6, h5 hoofdstuk 4 en 6 Hoofdstuk 3 Voorkennis Bij het rekenen met machten gelden de volgende rekenregels: - Bij een vermenigvuldiging van twee machten met hetzelfde

Nadere informatie

EE 2521: Digitale Signaalbewerking

EE 2521: Digitale Signaalbewerking EE 2521: Digitale Signaalbewerking 6. Programma: Week 1: Introductie, herhaling begrippen en eigenschappen (sampling, -transformatie, DTFT, convolutie) Week 2/3: Tijdsdiscrete filterstructuren (realisaties)

Nadere informatie

Annelies Droessaert en Etienne Goemaere

Annelies Droessaert en Etienne Goemaere De meerwaarde van TI-Nspire in de 2 de graad Annelies Droessaert en Etienne Goemaere 1. INLEIDING De meeste scholen kiezen er momenteel voor om een grafisch rekentoestel in te voeren vanaf de 2 de graad.

Nadere informatie

Populaties beschrijven met kansmodellen

Populaties beschrijven met kansmodellen Populaties beschrijven met kansmodellen Prof. dr. Herman Callaert Deze tekst probeert, met voorbeelden, inzicht te geven in de manier waarop je in de statistiek populaties bestudeert. Dat doe je met kansmodellen.

Nadere informatie

Lineaire afbeeldingen

Lineaire afbeeldingen Les 2 Lineaire afbeeldingen Als een robot bij de robocup (het voetbaltoernooi voor robots een doelpunt wil maken moet hij eerst in de goede positie komen, d.w.z. geschikt achter de bal staan. Hiervoor

Nadere informatie

Maak automatisch een geschikte configuratie van een softwaresysteem;

Maak automatisch een geschikte configuratie van een softwaresysteem; Joost Vennekens joost.vennekens@kuleuven.be Technologiecampus De Nayer We zijn geïnteresseerd in het oplossen van combinatorische problemen, zoals bijvoorbeeld: Bereken een lessenrooster die aan een aantal

Nadere informatie