Hardware-ontwerp van een bewegingsschatter voor videocompressie

Maat: px
Weergave met pagina beginnen:

Download "Hardware-ontwerp van een bewegingsschatter voor videocompressie"

Transcriptie

1 Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Hardware-ontwerp van een bewegingsschatter voor videocompressie door Peter Bertels 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 Hardware-ontwerp van een bewegingsschatter voor videocompressie door Peter Bertels Afstudeerwerk ingediend tot het behalen van de academische 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 Multimedia zijn ons de voorbije jaren steeds nadrukkelijker gaan omringen. Ze duiken steeds vaker op in kleine, draagbare toepassingen. In deze evolutie schuilt een grote uitdaging voor de ontwerper. Hij moet er in slagen om toepassingen die veel rekenkracht vergen in ware tijd uit te voeren op beperkte hardware. Deze scriptie is een onderzoek naar een snelle en efficiënte hardware-implementatie van een bewegingsschatter. Dit is een essentieel onderdeel van elke hedendaagse video-encoder. Voor dit onderzoek wordt uitgegaan van een software-implementatie van een video-encoder die aan de VUB ontwikkeld werd. In de eerste fase wordt gezocht naar een optimaal algoritme voor de bewegingsschatting. Hiervoor worden verschillende algoritmes uit de literatuur met elkaar vergeleken. In de tweede fase wordt het eigenlijke hardware-ontwerp gemaakt. Dit ontwerp wordt beschreven en gesimuleerd in de hardwarebeschrijvingstaal SystemC. Op basis van deze simulaties worden nog verdere optimalisaties voorgesteld. Uiteindelijk zal dit leiden tot een hardware-ontwerp voor een ware-tijdsbewegingsschatter. Op het einde van dit werk wordt een overzicht gegeven van een aantal uitbreidingen waarvan verder onderzoek de moeite loont. Voor een aantal uitbreidingen wordt ook de richting aangegeven waarin dit onderzoek zou kunnen lopen. Trefwoorden: FPGA, video-compressie, hardware-ontwerp en bewegingsschatting

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. Peter Bertels, 1 juni 2004

4 Inhoudsopgave 1 Inleiding Situering Schaalbare, waveletgebaseerde videocodering Doel van deze scriptie Structuur van het werk Principes van bewegingsschatting Doel van de bewegingsschatting Zoekruimtes Verschilcriterium Mogelijke schattingen Keuze tussen verschillende schattingen Rate-Distortion-optimalisatie Berekening van de rate Interpolatie Het coderen van meerdere beelden Kleurinformatie Een concreet voorbeeld Algoritmes voor bewegingsschatting Basisalgoritme: Exhaustief Zoeken Partiële SAD-berekening Successieve Eliminatie i

5 3.4 Heuristische algoritmen Three Step Search Steepest Decent Meetresultaten Vergelijking tussen de zoekalgoritmen Hardware Het ontwikelbord Het SelectRAM-geheugen Het DDR-geheugen Communicatie via PCI Quartus II Implementatie Basisontwerp van de bewegingsschatter Analyse van het algoritme Implementatie van de SAD-berekening Werking van de zoekmodule Werking van het SAD-blok Werking van het optellerblok Werking van het comparatorblok Bewegingsschatting van een volledig beeld Simulatie en realisatie van het basisontwerp Simulatie in SystemC Implementatie op FPGA Tweede ontwerp: opsplitsing van de SAD Derde ontwerp: toevoeging van PSAD Aanpassingen aan het tweede ontwerp Simulaties Een laatste bemerking ii

6 6 Uitbreidingen Interpolatie Globale interpolatie Lokale interpolatie C-schattingen Successieve eliminatie Besluit 63 A Inhoud van CD-ROM 64 Bibliografie 66 iii

7 Lijst van figuren 1.1 Principeschema van de waveletgebaseerde videocodec Reconstructie van een beeld op basis van de referentiebeelden Positie van de zoekruimte ten opzichte van het macroblok Enkele mogelijke schattingen voor een macroblok Opeenvolgende stappen tijdens de RD-optimalisatie Voorbeeld van interpolatie Structuur voor de bewegingsschatting binnen een GOP Allesomvattend voorbeeld van bewegingsschatting Pseudocode voor Exhaustief Zoeken Pseudocode voor de berekening van de PSAD Verschillende manieren om de zoekruimte te doorlopen Incrementele berekening van B Opeenvolgende stappen bij Three Step Search Opeenvolgende stappen in het Steepest Decent algoritme Stratix PCI ontwikkelbord van Altera Tweepoortgeheugen true dual-port Schrijf- en leesoperaties in het SelectRAM-geheugen SystemC-model van het DDR-geheugen Acht blokken worden simultaan vergeleken met het macroblok Berekening van de SAD voor één rij van acht pixels Principiële pijplijn voor de SAD-berekening iv

8 5.4 Schema van de zoekmodule Concrete pijplijn voor de SAD-berekening Volgorde waarin de zoekruimte doorlopen wordt Principeschema van de comparatorblok Volgorde waarin de macroblokken doorlopen worden Overlapping tussen de zoekruimtes van aangrenzende macroblokken Structuur van het geheugen voor de zoekruimte Alternatieve volgorde om de macroblokken te doorlopen Overzicht van het bewegingsschattingsblok Simulatie in SystemC (QCIF, z = 16) Pijplijn voor de SAD-berekening v

9 Lijst van tabellen 2.1 Mogelijke schattingen en bijhorende rate Vergelijking tussen PSAD-berekening en basisalgoritme Vergelijking tussen SEA-algoritme en basisalgoritme Vergelijking tussen exhaustief zoeken en heuristische methoden Overzicht van alle meetresultaten Configuraties van de verschillende geheugenblokken Duur van de bewegingsschatting van een QCIF-beeld voor verschillende zoekbereiken Simulatieresultaten na opsplitsing van SAD Simulatieresultaten voor QCIF-beelden met PSAD-berekening Simulatieresultaten voor CIF-beelden vi

10 Lijst van afkortingen CIF DDR EZ FIR FPGA GOP PCI PSAD RAM RD-optimalisatie RESUME QCIF SAD SSD SEA TSS VHDL beeldformaat, 352 bij 288 pixels Double Data Rate Exhaustief Zoeken Finite Impulse Response Field Programmable Gate Array Group Of Pictures Peripheral Component Interconnect Partiële SAD Random Access Memory Rate-Distortion-optimalisatie Reconfigurable Embedded Systems for Use in scalable Multimedia Environments Quarter CIF, 176 bij 144 pixels Sum of Absolute Differences Sum of Squared Differences Successieve Eliminatie Algoritme Three Step Search Very high speed integrated circuit Hardware Definition Language vii

11 Woord Vooraf Multimedia spelen een belangrijke rol in het leven in de eenentwintigste eeuw. De voorbije jaren zijn ze steeds nadrukkelijker op de voorgrond getreden. Waar ze vroeger enkel konden gedijen op zwaar uitgeruste computers, duiken ze vandaag steeds vaker op in kleine draagbare toepassingen. In deze evolutie schuilt een grote uitdaging voor de ontwerper. Hij moet er in slagen om de enorme rekenkracht die nodig is voor multimedia video in het bijzonder in een compacte en beperkte hardware te gieten. Multimediatoepassingen vergen ook een grote snelheid: het is belangrijk dat alles in ware tijd kan gebeuren. Deze scriptie gaat de uitdaging aan. Het is een onderzoek naar een snelle en efficiënte hardware-implementatie van een bewegingsschatter. Dit is een essentieel onderdeel van elke hedendaagse video-encoder. Voor dit onderzoek wordt uitgegaan van een software-implementatie van een video-encoder die aan de VUB ontwikkeld werd. Een goede hardware-implementatie staat of valt met de keuze van een goed algoritme. Daarom wordt in de eerste fase gezocht naar een optimaal algoritme voor de bewegingsschatting. Hiervoor worden verschillende algoritmes uit de literatuur met elkaar vergeleken. In de tweede fase wordt het eigenlijke hardware-ontwerp gemaakt. Dit ontwerp wordt beschreven en gesimuleerd in de hardwarebeschrijvingstaal SystemC. Op basis van deze simulaties worden nog verdere optimalisaties voorgesteld. Uiteindelijk zal dit leiden tot een hardware-ontwerp voor een ware-tijdsbewegingsschatter. Op het einde van dit werk wordt een overzicht gegeven van een aantal uitbreidingen waarvan verder onderzoek de moeite loont. Voor een aantal uitbreidingen wordt ook de richting aangegeven waarin dit onderzoek verder zou kunnen lopen. viii

12 Dankwoord In de eerste plaats wens ik prof. Dirk Stroobandt te danken voor zijn rol als promotor van mijn scriptie. Hij heeft mij de kans gegeven om in alle vrijheid dit boeiende onderzoeksdomein te verkennen en dit onderzoek succesvol af te ronden. Mijn speciale dank gaat uiteraard ook uit naar mijn scriptiebegeleider Mark Christiaens. Hij heeft deze en verwante scripties van nabij opgevolgd tijdens de tweewekelijkse vergaderingen. Ze vormden een stevige basis voor wat uiteindelijk deze scriptie geworden is. Hendrik Eeckhaut verdient ook een vermelding in dit dankwoord. Bij hem kon ik terecht met alle vragen die mijn pad kruisten. Van hem kwam ook steeds het bevestigende duwtje in de rug dat elke student tijdens een thesisjaar af en toe nodig heeft. Bovendien heeft hij tijd noch moeite gespaard om dit werk grondig na te lezen. Philippe Faes, Benjamin Schrauwen en Harald Devos hebben ook een belangrijk steentje bijgedragen aan deze scriptie. Zij mochten in dit dankwoord dan ook niet ontbreken. Verder wil ik in dit dankwoord ook plaats maken voor mijn medestudenten. We zijn er samen in geslaagd om twee hardware-ontwerpen voor video-encoders klaar te stomen. Toffe babbels, een aangename sfeer en de kruisbestuiving tussen onze thesissen heeft dit mogelijk gemaakt. In volstrekt willekeurige volgorde: Pol, Brecht, Inge, Michiel, Christophe, Jan en Stijn: heel erg bedankt! Dan zijn er nog een aantal mensen met wie ik de laatste jaren veel leuke momenten heb mogen delen. Ze hebben me ook dit jaar sterk gesteund als het even minder goed ging. Eveneens in volstrekt willekeurige volgorde: Koen, Wouter, Inge & Christophe en Jeroen. Kenmerkend voor een dankwoord is wellicht dat er altijd mensen zijn die over het hoofd worden gezien. Dat heeft waarschijnlijk te maken met het feit dat een dankwoord vaak helemaal op het einde geschreven wordt, wanneer de deadline verraderlijk dichtbij komt. Deze mensen wil ik oprecht danken voor alles wat ze voor mij ix

13 gedaan hebben. Ik wil ze in het bijzonder danken voor het feit dat ze het me niet kwalijk nemen dat ik hen even over het hoofd heb gezien. Tot slot wil ik ook mijn ouders bedanken. Ze steunen me al meer dan drieëntwintig jaar in alles wat ik doe. Zonder hen was van deze scriptie wellicht niets in huis gekomen. Peter x

14 Hoofdstuk 1 Inleiding 1.1 Situering Deze scriptie kadert in een interuniversitair project, het RESUME-project [13]. De afkorting RESUME staat voor Reconfigurable Embedded Systems for Use in scalable Multimedia Environments. Binnen dit project wordt gewerkt aan een platform voor schaalbare videotoepassingen op herconfigureerbare ingebedde systemen. Hierbij komen verschillende aspecten aan bod: algoritmes voor de schaalbare codering en decodering van de videostroom, de hardware-implementatie ervan en de informatieuitwisseling die nodig is om de verschillende componenten vlot te laten samenwerken. Aan de onderzoeksgroep IRIS van de Vrije Universiteit Brussel werden algoritmes voor een schaalbare, waveletgebaseerde videocodec ontwikkeld. De onderzoeksgroep PARIS, Parallelle Informatiesystemen, neemt de hardware-implementatie hiervan voor zijn rekening. Verder werken ook de onderzoeksgroep Multimedia Lab en de T-ReCS-groep van IMEC mee aan het RESUME-project. 1.2 Schaalbare, waveletgebaseerde videocodering In deze scriptie wordt gewerkt aan de hardware-implementatie van de door IRIS ontwikkelde schaalbare, waveletgebaseerde videocodec. Het principe van het coderen en het decoderen van een videostroom wordt in figuur 1.1 weergegeven. Het coderen van de videobeelden gebeurt in drie opeenvolgende stappen, die hieronder kort besproken worden. 1

15 BS DWT QT / EC bitstroom BV BVC BC IDWT QT / ED bitstroom BV BVD Figuur 1.1: Principeschema van de waveletgebaseerde videocodec Bewegingsschatting (BS) Opeenvolgende videobeelden lijken vaak sterk op elkaar. Deze gelijkenissen kunnen benut worden om de beeldinformatie compacter op te slaan. Bewegingsvectoren (BV) beschrijven een beeld als een combinatie van blokken uit naburige beelden. Het is uiteraard niet mogelijk om de beelden exact te beschrijven met bewegingsvectoren. Daarom wordt ook een foutbeeld berekend dat in de volgende stappen verder verwerkt wordt. De bewegingsvectoren worden rechtstreeks gecodeerd tijdens de bewegingsvectorcodering (BVC). De bewegingsschatter die in deze scriptie ontworpen wordt, zorgt voor de bepaling van de optimale bewegingsvectoren en voor de berekening van het bijhorende foutbeeld. Discrete Wavelettransformatie (DWT) In deze stap wordt de laag- en hoogfrequente informatie in de foutbeelden gescheiden door middel van een discrete wavelettransformatie. Hierdoor wordt het mogelijk om de informatie efficiënter te comprimeren in de laatste stap. Een volledige beschrijving en een hardware-implementatie hiervan worden beschreven in [7]. Quadtree en Entropiecodering (QT+EC) Deze laatste stap zorgt voor de eigenlijke compressie. De Quadtree-opdeling maakt gebruik van de spatiale redundantie binnen de foutbeelden om ze compacter op te slaan. De Quadtree wordt aangevuld met een arithmetische encoder. In [6] wordt een uitgebreide beschrijving gegeven van deze codering alsook van een effectieve hardwarerealisatie. Voor het decoderen wordt het hele proces omgekeerd. Eerst en vooral worden de oor- 2

16 spronkelijke referentiebeelden en foutbeelden gedecomprimeerd (QT+ED). Daarna volgt een inversie wavelettransformatie (IDWT). Na decodering van de bewegingsvectoren (BVD), kan de bewegingscompensatie (BC) starten. Op basis van de reeds gedecodeerde beelden wordt met behulp van de bewegingsvectoren en het foutbeeld het oorspronkelijke beeld gereconstrueerd. 1.3 Doel van deze scriptie De bewegingsschatting is de meest tijdrovende stap in het compressieproces. Metingen wijzen uit dat tot 80% van de rekentijd hieraan besteed wordt [5]. Als de bewegingsschatting door middel van een hardware-implementatie versneld kan worden, zal dit dus een enorme tijdswinst betekenen voor het gehele compressieproces. Het doel van dit werk is dan ook te komen tot een efficiënte hardware-implementatie van de bewegingsschatter, het eerste blok uit het blokschema van de encoder in figuur 1.1. Bij het ontwerp wordt uitgegaan van het algoritme dat in het kader van het RESUME-project aan de VUB werd ontwikkeld. Het is de bedoeling om het hele ontwerpstraject [16] te doorlopen, van het algoritmische niveau over een systeembeschrijving in SystemC [14] tot een effectieve realisatie in hardware. Hierbij wordt gestreefd naar een implementatie die de nodige berekeningen in ware tijd kan uitvoeren. Het is de bedoeling dat deze scriptie een antwoord geeft op de vraag of bewegingsschatting in ware tijd mogelijk is. Fundamentele beperkingen worden blootgelegd en mogelijke oplossingen aangereikt. 1.4 Structuur van het werk Na deze inleiding wordt in hoofdstuk 2 de precieze werking van de bewegingsschatter besproken. De verschillende manieren waarop een beeld kan worden opgebouwd uit de naburige referentiebeelden komen hierin uitgebreid aan bod. Het is ook in dit hoofdstuk dat de exacte structuur van de bewegingsvectoren wordt bekeken. Voor een efficiënte bewegingsschatter is een efficiënt algoritme nodig. Hoofdstuk 3 behandelt verschillende in de literatuur bekende algoritmes voor het opstellen van bewegingsvectoren. Voor- en nadelen worden afgewogen om zo te komen tot het meest geschikte algoritme voor de implementatie in hardware. De effectieve realisatie van het hardware-ontwerp gebeurt op een ontwikkelbord van Altera. Dit bord wordt in hoofdstuk 4 uitgebreid besproken. Deze bespreking omvat ook een omschrijving van de softwaremodellen die gebruikt worden om dit bord en 3

17 zijn eigenschappen te simuleren. Er wordt ook dieper ingegaan op de communicatie tussen dit bord en de PC die de videostroom aanlevert die gecomprimeerd moet worden. Na de keuze van het beste algoritme en een bespreking van de hardware, worden in hoofdstuk 5 enkele realiseerbare implementaties van een ware-tijdsbewegingsschatter besproken. Hierbij worden de mogelijkheden van de hardware afgetast om uiteindelijk te komen tot een ware-tijdsbewegingsschatter. In hoofdstuk 6 worden enkele mogelijke uitbreidingen op het hardware-ontwerp van de bewegingsschatter besproken. Deze uitbreidingen worden niet in detail uitgewerkt, maar geven richtingen aan waarin het ontwerp verder kan evolueren in een zoektocht naar de ultieme bewegingsschatter. Aan het einde van dit werk, in hoofdstuk 7, worden de conclusies van dit onderzoek samengevat. 4

18 Hoofdstuk 2 Principes van bewegingsschatting Dit hoofdstuk beschrijft hoe de beweging in een videostroom vastgelegd kan worden in bewegingsvectoren en wat het nut daarvan is. Het schatten van beweging is niet eenvoudig: dit kan op heel veel verschillende manieren gebeuren. Een aantal mogelijkheden worden hieronder uitgebreid besproken. Verder in dit hoofdstuk staat beschreven hoe uit al deze mogelijkheden de optimale schatting geselecteerd wordt. Verder in het hoofdstuk komen enkele andere belangrijke aspecten van de bewegingsschatting aan bod: de interpolatie van de referentiebeelden, het coderen van een volledige videostroom en de wijze waarop kleur behandeld wordt bij de bewegingsschatting. 2.1 Doel van de bewegingsschatting De hier beschouwde videocodec zorgt voor een verliesloze compressie van de videostroom. Er gaat met andere woorden geen informatie verloren door het comprimeren. De codec slaagt erin de oorspronkelijke beeldinformatie compacter voor te stellen door redundantie uit te buiten. De belangrijkste vorm van redundantie in een videostroom is de temporele redundantie: opeenvolgende beelden verschillen doorgaans maar weinig van elkaar. Het ligt dan ook voor de hand om beelden te voorspellen op basis van naburige beelden, de zogenaamde referentiebeelden. Naast deze voorspelling of schatting, moet dan ook een foutbeeld berekend worden dat een perfecte reconstructie achteraf mogelijk maakt. Dit foutbeeld is niets anders dan het verschil tussen de schatting en het huidige beeld. Door de grote gelijkenissen tussen het huidige beeld en de referentiebeelden, zal het foutbeeld doorgaans nog maar weinig informatie bevatten. Dit 5

19 referentie A huidig beeld referentie B + foutbeeld Figuur 2.1: Reconstructie van een beeld op basis van de referentiebeelden maakt het mogelijk om dat foutbeeld compacter voor te stellen dan het oorspronkelijke beeld. De decoder kan op basis van die schatting en het foutbeeld, het oorspronkelijke beeld terug opbouwen. Dit gebeurt tijdens de bewegingscompensatie. Op figuur 2.1 is een principevoorbeeld te zien. 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 huidige beeld. Bij de laatste stap in de decodering wordt het foutbeeld, dat ook tijdens de codering berekend werd, bij deze schatting opgeteld. De bewegingsschatter zorgt voor het opstellen van de bewegingsvectoren en voor het berekenen van het foutbeeld. Dit principe kan op verschillende manieren praktisch uitgewerkt worden. Er zijn verschillende vrijheidsgraden: de grootte van de macroblokken, het aantal referentiebeelden, de grootte van de zoekruimte, het aantal bewegingsvectoren per macroblok,... In deze scriptie wordt steeds gewerkt met macroblokken van 16 bij 16 pixels die dan nog eens opgesplitst worden in submacroblokken van 8 bij 8 pixels. Er wordt ook steeds met twee referentiebeelden gewerkt. Voor de andere parameters worden in deze videocodec verschillende waarden gebruikt. Hoe dat precies in elkaar zit, staat uitgelegd in de volgende paragrafen. Elk van deze vrijheidsgraden levert uiteraard een verschillende schatting op. Een belangrijke taak voor de bewegingsschatter ligt dan ook in het vergelijken van de 6

20 z Figuur 2.2: Positie van de zoekruimte ten opzichte van het macroblok gevonden schattingen en het bepalen van de optimale schatting, die de uiteindelijk beste compressie oplevert. 2.2 Zoekruimtes De beste schatting voor een macroblok is meestal niet zo ver verwijderd van de positie van het macroblok. Daarom zal de bewegingsschatter de referentiebeelden nooit volledig doorzoeken. Het zoekproces wordt beperkt tot een veel kleinere zoekruimte die in de referentiebeelden gecentreerd is rond de positie van het macroblok, zoals te zien is in figuur 2.2. De grootte van de zoekruimte wordt aangegeven met behulp van de parameter z. Deze parameter geeft het zoekbereik aan. Dit is de lengte van de grootste bewegingsvector die binnen de zoekruimte past. Hieruit kan dan ook de grootte van de vierkante zoekruimte afgeleid worden: die is 2z + 16 pixels breed en even hoog. De zoekruimte is niet altijd even groot. De meest gebruikelijke keuzes zijn 16, 24, 32 of 48 pixels. Voor macroblokken aan de rand van het beeld, valt de zoekruimte uiteraard gedeeltelijk buiten de referentiebeelden. Dit wordt opgevangen door de pixels op de rand van het beeld te herhalen. 7

21 2.3 Verschilcriterium Men kan zich de vraag stellen hoe vastgesteld wordt welk blok de beste schatting is. Het hier beschouwde algoritme gebruikt het SAD-criterium. Dit criterium berekent de som van de absolute waarden van de verschillen tussen de pixels (Sum of Absolute Differences) in het huidige macroblok M en het kandidaatblok B dat er mee vergeleken wordt. Het beste blok is dat met de kleinste SAD. SAD = SSD = 15 y=0 15 y=0 15 x=0 15 x=0 M(y, x) B(y, x) (2.1) [ M(y, x) B(y, x)] 2 (2.2) Daarnaast wordt ook het SSD-criterium gebruikt. Dit criterium berekent de som van de kwadratische verschillen tussen de schatting en het macroblok (Sum of Squared Differences). Dit criterium wordt niet gebruikt voor het zoekalgoritme dat de beste schatting van elk type berekent, maar het is wel nuttig voor het vergelijken van de verschillende schattingen. Het SSD-criterium geeft namelijk een beter idee van de grootte van het foutbeeld. Daarom wordt op het einde van het zoekalgoritme, de SSD-waarde van de beste schatting berekend. 2.4 Mogelijke schattingen De bewegingsschatting van één macroblok wordt door maximaal drie verschillende vectoren beschreven. Er kunnen dus drie verschillende soorten schattingen onderscheiden worden. A-schatting De meest triviale schatting is de A-schatting. Deze schatting is in feite geen schatting. Er wordt geen bewegingsvector gebruikt en het hele macroblok wordt als foutbeeld doorgestuurd. B-schatting In dit geval wordt één blok uit een van de referentiebeelden als schatting gebruikt voor het macroblok. Het verschil tussen het macroblok en deze schatting wordt opgeslagen in het foutbeeld. Voor deze schatting is één bewegingsvector nodig. 8

22 (a) schatting B (b) schatting C (c) schatting abba (d) schatting cbbb Figuur 2.3: Enkele mogelijke schattingen voor een macroblok C-schatting Bij deze schatting wordt het macroblok voorgesteld door middel van twee bewegingsvectoren die verwijzen naar twee blokken uit de referentiebeelden. De uitmiddeling van deze twee blokken vormt de schatting voor het macroblok. Het is mogelijk dat deze twee bewegingsvectoren verwijzen naar twee verschillende referentiebeelden, maar het is eveneens mogelijk dat twee blokken uit hetzelfde referentiebeeld voor de C-schatting gebruikt worden. Deze drie schattingen worden gebruikt als schatting voor het macroblok op zich. Daarnaast is er nog de mogelijkheid om het macroblok op te splitsen in 4 submacroblokken die elk 8 bij 8 pixels groot zijn. Voor elk van deze submacroblokken wordt dan onafhankelijk van de andere submacroblokken een van deze drie schattingen gebruikt. Op die manier zijn voor één macroblok 84 verschillende schattingen mogelijk, 3 voor het macroblok op zich en 3 4 = 81 combinaties van schattingen voor de submacroblokken. In principe kunnen de submacroblokken ook nog verder opgesplitst worden, maar dat blijkt niet zinvol te zijn voor macroblokken van 16 bij 16 pixels. Een verdere opsplitsing dan de blokjes van 8 bij 8 pixels wordt in deze scriptie dan ook niet toegepast. In het vervolg van dit werk zullen de letters A, B en C gebruikt worden voor het aanduiden van de schattingen voor een macroblok op zich. Voor schattingen voor een submacroblok worden kleine letters gebruikt. Wanneer het gaat over de schatting 9

23 voor een macroblok, opgebouwd uit 4 afzonderlijke schattingen voor de submacroblokken, dan wordt een code gebruikt die bestaat uit vier kleine letters. Figuur 2.3 illustreert dit met enkele voorbeelden. 2.5 Keuze tussen verschillende schattingen Voor elke mogelijke schatting A, B, C of combinaties wordt de beste bewegingsvector of de beste bewegingsvectoren gezocht. Uit deze 84 mogelijkheden moet de meest optimale schatting bepaald worden. Twee factoren spelen hierbij een belangrijke rol: enerzijds de SSD-waarde, die de grootte van het foutbeeld aangeeft, anderzijds het aantal bits dat nodig is om de bijhorende bewegingsvector(en) te coderen. De optimale schatting houdt een goed evenwicht tussen deze twee factoren. Dit evenwicht wordt gevonden via rate-distortion-optimalisatie. De distortion die bij deze optimalisatie gebruikt wordt, is de SSD-waarde, de rate is een maat voor het aantal bits nodig voor de codering van de schatting. In de volgende paragraaf wordt rate-distortion-optimalisatie uitgelegd, later wordt dieper ingegaan op de manier waarop de rate berekend wordt Rate-Distortion-optimalisatie Er zijn 84 mogelijkheden voor de bewegingsschatting van een macroblok. De Rate- Distortion-optimalisatie (RD) verloopt in drie stappen, waarin telkens een aantal van deze mogelijkheden geschrapt wordt, tot er uiteindelijk nog maar één overblijft. Het hele proces wordt geïllustreerd in figuur 2.4. Eerste stap Om te beginnen wordt per groep van schattingen met dezelfde rate de schatting met de kleinste distortion bepaald. Deze wordt behouden, alle overige schattingen binnen deze groep worden geschrapt. Tweede stap Vervolgens worden de groepen onderling vergeleken. Wanneer in een groep de distortion hoger is dan de distortion in een groep met een lagere rate, dan wordt die schatting ook verwijderd. Die schatting is weinig zinvol omdat die meer bits nodig heeft en toch een slechter resultaat geeft. Derde stap Tot slot worden de overige schattingen differentieel bekeken. De optimale schatting is die waar in de grafiek van figuur 2.4 de vooropgestelde helling λ bereikt of net overschreden wordt. Op de figuur wordt het eerste punt geschrapt 10

24 distortion distortion distortion distortion rate rate (a) start van het algoritme (b) eerste stap rate rate distortion distortion distortion distortion helling helling rate rate rate rate (c) tweede stap (d) derde stap Figuur 2.4: Opeenvolgende stappen tijdens de RD-optimalisatie omdat de helling daar nog te steil is, het kan nog beter. Het derde punt wordt ook geschrapt omdat de helling daar te vlak is: deze hoge rate weegt niet meer op tegen de iets lagere distortion. Het tweede punt blijkt dus de optimale schatting te zijn Berekening van de rate Het is duidelijk dat RD-optimalisatie staat of valt met de kwaliteit van de maat die gebruikt wordt voor de rate en de distortion. Het SSD-verschilcriterium levert een vrij goede schatting op van de grootte van het foutbeeld. Het is dan ook de SSD-berekening die gebruikt wordt als maat voor de distortion. Aan elk van de 84 mogelijke schattingen werd in het oorspronkelijke algoritme (VUB) een verschillende rate toegekend. Dat is een beetje vreemd omdat permutaties als abcc en ccba evenveel bewegingsvectoren vereisen en dus dezelfde rate zouden moeten hebben. 11

25 schatting rate A 242 B 1330 aaab 1732 C 2383 aaac 2770 aabb 2842 abbb 3883 aabc 3935 aacc 4844 bbbb 4893 abbc 5003 abcc 5952 bbbc 6004 accc 6755 bbcc 6971 bccc 7650 cccc 8523 Tabel 2.1: Mogelijke schattingen en bijhorende rate Rekening houdend met dergelijke permutaties, kunnen de 84 mogelijke schattingen vervangen worden door 18 groepen van schattingen met dezelfde rate. Hierbij zit ook de mogelijkheid aaaa. Die kan echter uitgesloten worden omdat aaaa dezelfde schatting oplevert als A. Tabel 2.1 geeft een overzicht van de resterende 17 groepen. Voor deze scriptie krijgt elke groep één rate toegekend. Deze rate is het gemiddelde van de verschillende rates die het oorspronkelijke algoritme aan elk van de permutaties binnen de groep toekende. Door het feit dat er nu minder groepen schattingen zijn, zullen er in de eerste stap van het RD-algoritme al veel meer mogelijkheden geschrapt worden. Daardoor wordt het algoritme sneller. Om na te gaan of dit vereenvoudigde algoritme steeds dezelfde optimale schatting naar voor schuift als het oorspronkelijke algoritme, werden vergelijkende tests gedaan op enkele beeldsequenties. De resultaten waren bevredigend: het vereenvoudigde algoritme werkt even goed als het oorspronkelijke. 12

26 2.6 Interpolatie Hierboven staan de principes voor een eenvoudige bewegingsschatter beschreven. Hierop bestaat echter ook een belangrijke uitbreiding, interpolatie, die in deze paragraaf aan bod komt. Door het interpoleren van de referentiebeelden, kunnen betere schattingen verkregen worden. Interpolatie verhoogt de resolutie, zodat het mogelijk wordt om bewegingen met een grotere nauwkeurigheid te schatten, bijvoorbeeld tot op 1/2 of 1/4 pixel. De interpolatie vergroot de zoekruimte aanzienlijk vier keer groter voor 1/2 pixelinterpolatie wat dus ook het rekenwerk sterk doet toenemen. Tot 1/4 pixel blijkt dit in de praktijk zinvol te zijn: de verbetering van de schatting weegt dan nog op tegen de grotere complexiteit. Bij verdere interpolatie is dit niet meer het geval [9]. Figuur 2.5: Voorbeeld van interpolatie: de donkere pixels zijn origineel, de lichtgekleurde zijn door interpolatie toegevoegd. Figuur 2.5 illustreert hoe de referentiebeelden geïnterpoleerd worden. Het gegeven voorbeeld interpoleert tot op 1/2 pixel, voor 1/4 pixel gaat het uiteraard analoog. Tussen elke twee pixels wordt zowel horizontaal, vertikaal als diagonaal een geïnterpoleerde pixel berekend. Hiervoor wordt een FIR-filter gebruikt met acht coëfficienten. Dit hoge-resolutiebeeld wordt vervolgens opgesplitst in vier referentiebeelden: het originele referentiebeeld, een beeld dat als het ware over 1/2 pixel naar rechts 13

27 is verschoven, een beeld dat 1/2 pixel naar beneden is verschoven en een beeld dat diagonaal 1/2 pixel verschoven is. Eén referentiebeeld wordt dus vervangen door vier referentiebeelden. De rekentijd hoeft echter niet met een factor vier toe te nemen. Na het vinden van de beste schatting in het oorspronkelijke referentiebeeld, volstaat het om in de geïnterpoleerde beelden enkel in de buurt van de reeds gevonden schatting op zoek te gaan naar een betere schatting. 2.7 Het coderen van meerdere beelden De codering van de videostroom verloopt in groepen van telkens 16 beelden, Een dergelijke groep wordt GOP genoemd, een afkorting van de Engelse term Group Of Pictures. Voor de bewegingsschatting van een beeld worden telkens twee naburige beelden gebruikt. Binnen een GOP worden alle beelden gerangschikt in een boomstructuur, zoals in figuur 2.6. Op deze figuur zijn R 1 en H 1 tot en met H 15 de beelden van een GOP, R 2 is het eerste beeld van de volgende GOP. Deze boomstructuur geeft aan welke referentiebeelden gebruikt worden voor de schatting van een beeld. Voor de bewegingsschatting van H 8 worden de beelden R 1 en R 2 gebruikt, H 4 wordt geschat op basis van R 1 en H 8 enzovoort. Deze boomstructuur bepaalt ook de grootte van de gebruikte zoekruimte. Op het laagste niveau worden beelden geschat tussen de beelden die er net voor of net na komen. Die beelden liggen zo dicht bij elkaar in de tijd, dat een kleine zoekruimte met een zoekbereik z van 16 pixels volstaat voor een goede schatting. Voor de schatting van H 2 worden de beelden R 1 en H 4 gebruikt. Die beelden liggen verder van H 2 verwijderd en daardoor is de beweging tussen die beelden wellicht ook groter. Daarom wordt op dit niveau een zoekbereik van 24 pixels gebruikt. Nog een trap hoger in de hiërarchie van de boomstructuur, wordt een zoekbereik van 32 pixels gebruikt en voor de schatting van het middelste beeld van elke GOP, H 8, is een zoekbereik van 48 pixels gebruikelijk. Deze hiërarchische opbouw van de schattingen van de beelden binnen een GOP maakt een schaalbare decodering van de videostroom mogelijk. Voor de volledige decodering moeten uiteraard alle beelden opnieuw opgebouwd worden, maar wie tevreden is met de helft van de oorspronkelijke framerate, die kan het laatste niveau overslaan. Dit is een zeer interessante eigenschap met het oog op multimediatoepassingen op ontvangers die over een beperkte rekenkracht, opslagruimte of bandbreedte beschikken. 14

28 R 1 R 2 H 8 H 4 H 12 H 2 H 6 H 10 H 14 H 1 H 3 H 5 H 7 H 9 H 11 H 13 H 15 Figuur 2.6: Structuur voor de bewegingsschatting binnen een GOP 2.8 Kleurinformatie De videobeelden zijn gecodeerd in het YUV-formaat. Dat houdt in dat de kleur van elke pixel wordt gecodeerd met behulp van drie getallen: Y, U en V. Een andere vaak gebruikte codering van kleurinformatie is de RGB-codering, waarbij elke pixel wordt opgebouwd uit de drie hoofdkleuren Rood, Groen en Blauw. De YUV-codering kan uit de RGB-codering worden afgeleid door middel van de formules in vergelijking 2.3. Y = R G B + 16 U = R G B (2.3) V = R G B Het voordeel van de YUV-codering is het feit dat deze codering de helderheids- en de kleurinformatie scheidt. Doordat het menselijk oog veel gevoeliger is voor de helderheid dan voor kleur wordt het interessant om deze informatie afzonderlijk te behandelen. Zo worden in deze codec de U- en V-componenten van het beeld maar opgeslagen met de helft van de resolutie van het volledige beeld, dit is de zogenaamde 4:2:0-codering. 15

29 De bewegingsschatting gebeurt enkel op de luminantie-component Y. De bewegingsvectoren die op die manier gevonden worden, blijken ook bruikbaar zijn om de U- en de V-component te schatten. 2.9 Een concreet voorbeeld Figuur 2.7 is de perfecte afsluiter van dit hoofdstuk. Deze afbeelding vat de hele bewegingsschatting samen. Bovenaan zijn de referentiebeelden te zien (a) en (b). Daaronder staan het huidige beeld (c) en de schatting voor het huidige beeld (d) die aan de hand van de bewegingsvectoren opgebouwd werd. Deze schatting krijgt de decoder te zien na de bewegingscompensatie. Helemaal onderaan in figuur 2.7 staat het foutbeeld dat bij deze schatting hoort. 16

30 (a) referentiebeeld A (b) referentiebeeld B (c) huidig beeld (d) beeld na reconstructue (e) foutbeeld Figuur 2.7: Allesomvattend voorbeeld van bewegingsschatting 17

31 Hoofdstuk 3 Algoritmes voor bewegingsschatting In dit hoofdstuk worden verschillende algoritmes vergeleken voor het zoeken van de beste schatting voor een gegeven macroblok binnen een gegeven zoekruimte. Enkel het opstellen van één bewegingsvector (B-schatting) voor het gehele macroblok komt aan bod. Schattingen voor de submacroblokken, C-schattingen en interpolatie zijn uitbreidingen die in dit hoofdstuk niet besproken worden. Er zijn twee types van zoekalgoritmes: de full-search algoritmes die het macroblok vergelijken met alle blokken in de zoekruimte en de heuristische algoritmes die dat niet doen. De full-search algoritmes vergen doorgaans meer rekenkracht, maar hebben het voordeel dat ze altijd de beste schatting opleveren. De heuristische methodes zijn sneller, maar vinden niet altijd de beste schatting. In dit hoofdstuk komen algoritmes van beide types aan bod. Aan het eind van dit hoofdstuk wordt het algoritme beschreven dat het beste lijkt met het oog op een efficiënte hardware-implementatie. 3.1 Basisalgoritme: Exhaustief Zoeken De meest voor de hand liggende manier om op zoek te gaan naar een B-schatting is Exhaustief Zoeken (EZ). Het EZ-algoritme doorloopt de hele zoekruimte en berekent voor elk blok B ij van 16 bij 16 pixels de SAD-waarde tussen dit blok in de zoekruimte en het te schatten macroblok M uit het huidige beeld. De verschillende SADwaarden worden vergeleken en de bewegingsvector wordt de positie van het blok met de kleinste SAD-waarde. Het algoritme vindt dus steeds het globale minimum van de SAD, zodat dit een full-search algoritme is. 18

32 min = SAD (B[0][0], M); vi = 0; vj = 0; for (i = -z; i < z; i++) { for (j = -z; j < z; j++) { sad = SAD (B[i][j], M); if (sad < min) { vi = i; vj = j; min = sad; } } } Figuur 3.1: Pseudocode voor Exhaustief Zoeken Figuur 3.1 toont de pseudo-code van het algoritme. Telkens wanneeer de SADwaarde kleiner is dan het voorlopige minimum min, wordt de positie van het blok B ij bijgehouden en wordt min aangepast. Op die manier bevat min uiteindelijk de SAD-waarde van het beste blok en bevatten v i en v j de bewegingsvector van de gezochte B-schatting. Het voordeel van EZ is dat het vrij eenvoudig te implementeren is. Het nadeel is echter dat het ook erg rekenintensief is. Uit figuur 3.1 blijkt dat voor een zoekbereik z, (2z) 2 blokken vergeleken moeten worden met het macroblok. Het kleinst mogelijke zoekbereik (16 pixels) vereist dus al 1024 SAD-berekeningen. Voor het grootste zoekbereik van 48 pixels loopt dit op tot 9216 berekeningen. Daarbij komt nog het feit dat een SAD-berekening op zich ook al heel wat rekenwerk vraagt. Om de SAD-waarde te berekenen volgens vergelijking (2.1) moet 256 keer de absolute waarde van het verschil tussen twee pixels berekend worden. 3.2 Partiële SAD-berekening Het EZ-algoritme berekent voor elk blok B ij uit de zoekruimte de volledige SADwaarde. Maar dat hoeft eigenlijk niet: de exacte SAD-waarde is alleen maar belangrijk als ze kleiner is dan min. In het andere geval, doet de waarde er niet toe. 19

33 int PSAD (blok, macroblok, min) { psad = 0; for (x = 0; x < 16 && psad < min; x++) { for (y = 0; y < 16 && psad < min; y++) { psad += abs(blok[x][y] - macroblok[x][y]); } } return psad; } Figuur 3.2: Pseudocode voor de berekening van de PSAD Het ligt dan ook voor de hand om de SAD-berekening uit vergelijking (2.1) voortijdig af te breken als de waarde min overschreden wordt. Dit reduceert het aantal bewerkingen, zonder evenwel te raken aan het full-search principe. Nog steeds worden alle blokken met het macroblok vergeleken en zal het globale optimum gevonden worden. De functie PSAD uit figuur 3.2 voert een dergelijke partiële SAD-berekening uit. Deze functie kan SAD in figuur 3.1 vervangen. De partiële berekening van de SAD levert vaak een belangrijke versnelling op. De grootte van de versnelling hangt af van de snelheid waarmee een relatief goede schatting gevonden wordt. Wanneer het eerste blok B ij dat vergeleken wordt meteen de beste schatting is, dan is de versnelling het grootst. In dat geval wordt in het vervolg van het algoritme geen enkele SAD-waarde nog volledig berekend. Wanneer de beste schatting pas helemaal op het einde van het zoekproces gevonden wordt, is de versnelling uiteraard kleiner. Kortom: de volgorde waarin de blokken uit de zoekruimte doorlopen worden, speelt ook een rol. In het kader van deze scriptie werden verschillende mogelijkheden van het EZalgoritme geïmplementeerd in C++: de traditionele met SAD-berekening, een versie met PSAD-berekening die de zoekruimte van links naar rechts en van boven naar onder (figuur 3.3 (a)) doorloopt en een versie met PSAD-berekening die de zoekruimte van links naar rechts maar van binnen naar buiten (figuur 3.3 (b)) doorloopt. Om een goede vergelijking te maken tussen deze algoritmes, werd een meting gedaan van het aantal uitgevoerde berekeningen. De berekeningen van de absolute waarde van het verschil tussen twee pixels werden geteld, zowel in het SAD- als het PSADalgoritme. 20

34 (a) van boven naar onder (b) van binnen naar buiten Figuur 3.3: Verschillende manieren om de zoekruimte te doorlopen implementatie volledig beeld (%) zonder rand (%) SAD PSAD (boven-onder) PSAD (binnen-buiten) Tabel 3.1: Vergelijking tussen PSAD-berekening en basisalgoritme Bij het PSAD-algoritme is er ten opzicht van het SAD-algoritme, een bijkomende vergelijking in de lus om na te gaan of de voorlopig berekende SAD-waarde kleiner is dan min. Deze vergelijking werd niet in rekening gebracht voor deze meting omdat deze vergelijking in de uiteindelijke hardware-realisatie, parallel zal lopen met de berekening van de lusvoorwaarden (x < 16 en y < 16) die de SAD-berekening in hardware aansturen. Daardoor betekent deze bijkomende vergelijking geen meerkost in de rekentijd van het bewegingsschattingsblok. Omdat de PSAD-berekening niet voor elk macroblok even veel berekeningen vergt, werden in dit experiment de bewegingsvectoren van een volledig QCIF-beeld opgesteld. Een QCIF-beeld is een beeld van 176 bij 144 pixels en het omvat dus 99 (9 11) macroblokken van 16 bij 16 pixels. Het aantal berekeningen werd uitgemiddeld over deze macroblokken. Er blijkt echter een groot verschil te zijn tussen de macroblokken in het midden van het beeld en die aan de rand. Voor de macroblokken aan de rand van het beeld ligt de zoekruimte als het ware gedeeltelijk buiten het beeld. Om toch een volledige zoekruimte te kunnen opbouwen, worden de pixels aan de rand van het 21

35 beeld herhaald. Voor exhaustief zoeken met volledige SAD-berekening maakt dit uiteraard niet uit, maar voor de andere algoritmen blijkt er toch duidelijk een verschil te zijn in de prestaties aan de rand van het beeld en in het midden. Om dit verschil in beeld te brengen, werden de resultaten eerst uitgemiddeld over alle macroblokken in het beeld (99) en vervolgens enkel over de macroblokken die in het midden van het beeld liggen (72). Tabel 3.1 vat de resultaten van deze meting samen. Voor de duidelijkheid wordt het aantal berekeningen procentueel aangegeven ten opzichte van exhaustief zoeken. De conclusie is duidelijk: het voortijdig afbreken van de SAD-berekening levert een belangrijke winst op. Zoals verwacht speelt ook de volgorde waarin de zoekruimte doorlopen wordt een rol. Uit deze resultaten blijkt ook duidelijk dat dit algoritme sneller werkt bij macroblokken aan de rand van het beeld. 3.3 Successieve Eliminatie Het berekenen van de SAD-waarde is erg rekenintensief. Wanneer dan na de berekening blijkt dat de SAD groter is dan het eerder gevonden minimum, dan is de berekening in feite voor niets geweest. Het blijkt echter mogelijk te zijn om met een minimaal aantal berekeningen al een ondergrens voor de SAD te berekenen. Wanneer deze ondergrens groter is dan het reeds gevonden minimum min, dan kan de SAD-berekening vermeden worden. Ook dit is een manier om het EZ-algoritme te versnellen. Dit is wat in het Successieve Eliminatie Algoritme (SEA) [12][15] gebeurt. Vergelijking 3.1 geeft de gebruikte ondergrens weer. In 3.2 wordt het bewijs hiervan gegeven. Dit bewijs steunt essentieel op de gekende driehoeksongelijkheid: x + y x + y. B 1 15 M met B = 1 1 y=0 15 x=0 B(y, x) (3.1) B 1 M = 1 = B(y, x) M(y, x) y=0 x=0 y=0 x= ( ) B(y, x) M(y, x) (3.2) y=0 x= B(y, x) M(y, x) y=0 x=0 22

36 16 p 16 p B p Figuur 3.4: Incrementele berekening van B 1 Het berekenen van deze ondergrens gebeurt relatief snel. De waarde van M 1 moet uiteraard slechts één keer bepaald worden. Voor de berekening van B 1 bestaat een incrementele methode. Het zoekalgoritme doorloopt de zoekruimte steeds van links naar rechts. Op die manier worden alle blokken B p binnen een rij van de zoekruimte vergeleken met het macroblok. Deze rij wordt opgesplitst in strookjes die 16 pixels hoog zijn en 1 pixel breed. Figuur 3.4 geeft aan hoe dit in zijn werk gaat. De rij S i bevat voor elk van deze strookjes de som van alle pixels. De incrementele berekening steunt op het feit dat B p 1 kan geschreven worden in functie van de S i, zoals blijkt uit vergelijkingen 3.3 en p+15 B p = B p (y, x) = S i (3.3) y=0 x=0 i=p 1 1 B p+1 = B p S p + S p+16 (3.4) Dit algoritme werd in de praktijk uitgetest in een meting die volkomen analoog is aan de vorige meting. De berekeningen die tijdens deze meting geteld werden zijn: de berekeningen van de absolute waarde binnen de functie SAD of PSAD, de optellingen voor het bepalen van M en de optelling nodig voor het incrementeel berekenen van B 1. Merk op dat deze meting er van uit gaat dat de sommen S i vooraf al berekend zijn. Voor de incrementele berekening van B 1 zijn dus slechts 2 optellingen nodig. In hoofdstuk 5 zal duidelijk worden dat dit een realistische veronderstelling 23

37 implementatie volledig beeld (%) zonder rand (%) SAD SEA (boven-onder) SEA (binnen-buiten) SEA en PSAD (boven-onder) SEA en PSAD (binnen-buiten) Tabel 3.2: Vergelijking tussen SEA-algoritme en basisalgoritme is, omdat de berekening van S i voor een macroblok parallel kan verlopen met de bewegingsschatting voor het voorgaande macroblok. De meetresultaten staan in tabel 3.2. Deze cijfers tonen aan dat er een significante tijdswinst geboekt kan worden met deze successieve eliminatie. Als daarenboven de successieve eliminatie gecombineerd wordt met de partiële berekening van de SAD, dan is de winst nog groter: het algoritme vergt dan ongeveer drie keer minder berekeningen dan de niet-geoptimaliseerde EZ-implementatie. In tegenstelling tot exhaustief zoeken met PSAD-berekening blijkt dit algoritme beter te presteren in het midden van het beeld. Het verschil is zelfs opvallend groot: voor de blokken in het midden van het beeld levert dit algoritme een tijdswinst op van meer dan 60%, over het hele QCIF-beeld bekeken is dit nog maar 40%. 3.4 Heuristische algoritmen Tot hier werden enkel full-search methodes besproken. In deze paragraaf worden enkele heuristische methodes aangehaald, waarmee een lokaal optimale schatting wordt gevonden. Het is evenwel niet de bedoeling een volledig overzicht te geven. De geïnteresseerde lezer wordt hiervoor doorverwezen naar [11]. De meeste heuristieken steunen op de vaststelling dat de beweging tussen verschillende frames vaak niet zo groot is en dat de beste schatting dus meestal in het midden van de zoekruimte ligt. Er wordt ook vaak verondersteld dat de SAD groter wordt naarmate de afstand tot het globale minimum vergroot en omgekeerd Three Step Search Three Step Search [10] is een van de eerste heuristische algoritmen voor bewegingsschatting. Het dateer al van Er zijn ondertussen al verscheidene varianten 24

38 Figuur 3.5: Opeenvolgende stappen bij Three Step Search voor bedacht en ontwikkeld. Ook in dit beknopte overzicht van heuristieken, mocht Three Step Search dan ook niet ontbreken. Figuur 3.5 illustreert de drie stappen waaraan de methode zijn naam ontleend. Het algoritme begint met het vergelijken van 9 blokken met het macroblok. Deze negen blokken liggen verspreid over de hele zoekruimte op een afstand z/2 van het midden. In de volgende stap worden nog eens acht blokken vergeleken, die liggen rond het beste blok dat gevonden werd in de eerste stap. De afstand tot het blok in het midden is nu z/4. Dit wordt nog eens herhaald in de derde stap. Bij een zoekbereik van 8 pixels is deze derde stap meteen ook de laatste stap. In dat geval liggen de laatste blokken die met het macroblok vergeleken worden vlak naast elkaar. Het algoritme kan ook toegepast worden op grotere zoekruimtes. Het spreekt voor zich dat het algoritme dan meer stappen nodig heeft: 2 logz om precies te zijn. Zoals hoger reeds aangehaald, leveren heuristieken niet altijd de beste schatting. Hier is het duidelijk dat de bewegingsvector die door Three Step Search bepaald wordt, het lokale optimum zal zijn binnen het laatste vergeleken vierkant van 3 bij 3 pixels Steepest Decent De oorspronkelijke software van de VUB waarvan deze scriptie vertrekt voor de hardware-implementatie, gebruikt voor de bewegingsschatting ook een heuristiek. Meer bepaald het Steepest Decent algoritme. Deze methode is een algemene heuristische zoekmethode die dus ook kan worden gebruikt voor bewegingsschatting. Dit algoritme beperkt de zoekruimte tot een veel kleinere zoekvenster, waarin een initiële schatting gezocht wordt met het EZ-algoritme. In de volgende stappen van 25

39 Figuur 3.6: Opeenvolgende stappen in het Steepest Decent algoritme implementatie volledig beeld zonder rand berekeningen (%) vec. berekeningen (%) vec. SAD Steepest Decent (1/4) Steepest Decent (1/16) Steepest Decent (PSAD) Three Step Search Tabel 3.3: Vergelijking tussen exhaustief zoeken en heuristische methoden het algoritme wordt geprobeerd deze initiële schatting te verbeteren. Dit gebeurt door een nieuwe zoekvenster te centreren rond de beste schatting uit de vorige stap. Zolang betere schattingen gevonden worden en de grens van de zoekruimte niet bereikt is, schuift het zoekvenster verder op. Het is duidelijk dat dit een heuristische methode is, die niet altijd de beste schatting zal vinden. Maar de gevonden schatting zal wel steeds het lokale minimum zijn binnen het kleine zoekvenster Meetresultaten Ook deze heuristische algoritmen werden geïmplementeerd en vergeleken met het basisalgoritme EZ. Van het Steepest Decent algoritme werden drie versies getest: in de eerste versie is het zoekvenster 1/4 van de totale zoekruimte, in de tweede versie is dat nog maar 1/16. De derde versie is een Steepest Decent algoritme met zoekvenster 1/4, gecombineerd met een partiële berekening van de SAD. De zoekruimte voor deze meting was steeds 16, zodat de hier geïmplementeerde versie van Three Step Search dus vier stappen nodig heeft voor de bewegingsschatting. 26

40 Uit tabel 3.3 laat zien dat de heuristische methoden sneller zijn dan de klassieke berekening (SAD). TSS blijkt zelfs 28 keer sneller te zijn dan exhaustief zoeken. Zoals verwacht, blijkt het onmogelijk om zeer snel en tegelijk ook zeer goed te zoeken. TSS vindt voor niet eens de helft van de macroblokken de optimale bewegingsvector. Dit geldt zowel in het midden van het beeld als aan de rand. De snelste Steepest Decent methode (1/16) doet niet veel beter. Deze methode levert voor ongeveer de helft van de macroblokken de beste bewegingsvector op. Deze resultaten zijn ronduit slecht. Uit de meting blijkt namelijk dat het foutbeeld 10% groter wordt (gemeten in SAD) door deze slechtere bewegingsvectoren dan in bij de optimale schatting. Steepest Decent (1/4) levert betere resultaten op, maar dit algoritme is dan ook beduidend trager. Deze methode, die een aanvaardbar resultaat oplevert en ongeveer 70% van de optimale bewegingsvectoren vindt, levert slechts een snelheidswinst op van 30% ten opzichte van niet-geoptimaliseerd exhaustief zoeken. Dezelfde Steepest Decent methode presteert in combinatie met PSAD een stuk beter. Dezelfde bewegingsvectoren worden gevonden, maar de snelheidswinst ten opzichte van het basisalgoritme is ongeveer 55%. Deze methode is duidelijk de beste heuristiek uit deze test. 3.5 Vergelijking tussen de zoekalgoritmen Om de vergelijking tussen de hierboven besproken zoekalgoritmen te vergemakkelijken, worden alle meetresultaten samengevat in tabel 3.4. Eerst en vooral valt op dat TSS met ruime voorsprong het snelste algoritme is. Maar het levert dan ook zeer slechte bewegingsvectoren. Uit de meting blijkt dat het verkregen foutbeeld tot 10% groter wordt in SAD-waarde dan het foutbeeld dat volgt uit de optimale schatting. Bovendien is TSS niet zo n geschikte keuze voor een hardware-implementatie omdat het algoritme kris-kras door de zoekruimte springt. Een belangrijke beperking binnen hardware-ontwerp is de toegang tot data uit het geheugen: een regelmatige datastroom leidt tot een efficiëntere implementatie. TSS lijkt dan ook meer geschikt voor een snelle software-implementatie waarbij de kwaliteit van de compressie en dus ook van de bewegingsschatting minder belangrijk is. Steepest Decent 1/16 presteert al niet veel beter: deze methode vindt maar iets meer dan de helft van de optimale bewegingsvectoren. Ook bij deze methode blijkt het foutbeeld 10% groter te zijn dan bij de ideale bewegingsschatting. Steepest Decent 1/4 geeft betere resultaten. Maar dit algoritme vergt meer berekeningen dan de optimalisaties van exhaustief zoeken die dan ook nog eens een betere 27

41 implementatie volledig beeld zonder rand berekeningen (%) vec. berekeningen (%) vec. SAD PSAD (boven-onder) PSAD (binnen-buiten) SEA (boven-onder) SEA (binnen-buiten) SEA en PSAD (boven-onder) SEA en PSAD (binnen-buiten) Steepest Decent (1/4) Steepest Decent (PSAD) Steepest Decent (1/16) Three Step Search Tabel 3.4: Overzicht van alle meetresultaten schatting opleveren. Zelfs wanneer deze heuristiek gecombineerd wordt met partiële berekening van de SAD, blijkt exhaustief zoeken nog steeds sneller te zijn. De conclusie is dan ook dat successieve eliminatie gecombineerd met partiële berekening van de SAD de verstandigste keuze is voor de hardware-implementatie van deze thesis. 28

42 Hoofdstuk 4 Hardware Dit vierde hoofdstuk handelt over de hardware waarop de bewegingsschatter gerealiseerd zal worden. Eerst wordt een overzicht gegeven van de verschillende onderdelen van het ontwikkelbord van Altera en hun mogelijkheden. Vervolgens worden de onderdelen die voor het ontwerp van de bewegingsschatter van belang zijn in detail besproken. 4.1 Het ontwikelbord De realisatie van het hardware-ontwerp dat in deze scriptie voorgesteld wordt, zal gebeuren op het Stratix PCI ontwikkelbord van Altera [3]. Een afbeelding van dit ontwikkelbord is te zien op figuur 4.1. De verschillende onderdelen op dit bord, worden hieronder opgesomd. FPGA FPGA is de afkorting van Field Programmable Gate Array. Dit is de programmeerbare chip waarop de hardware-ontwerp geprogrammeerd zal worden. De FPGA op dit ontwikkelbord is de Stratix Device EP1S25 [2]. Deze chip bevat naast programmeerbare logische blokken ook RAM-geheugen met een opslagcapaciteit van bits, 10 DSP-blokken en 6 PLL s. Omdat in dit hardware-ontwerp intensief gebruik wordt gemaakt van het RAM-geheugen op de FPGA en op het bord, wordt de werking ervan verder uitgebreid besproken. DDR SDRAM Naast de FPGA is er op het ontwikkelbord ook plaats voor een 256 MiB groot DDR SDRAM-geheugenblok. Dit is het hoofdgeheugen van het bord. Het wordt in het hardware-ontwerp dan ook gebruikt voor het opslaan van de referentiebeelden. 29

43 PCI-bus Dit ontwikkelbord is voorzien van een PCI-bus zodat het bord eenvoudig aangesloten kan worden op de PC. Verder in dit hoofdstuk wordt uitgelegd hoe deze PCI-verbinding in het ontwerp van de bewegingsschatter gebruikt kan worden. Flash-geheugen Dit geheugen is 8 MiB groot. Het kan gebruikt worden om de configuratie van de FPGA in op te slaan. De FPGA verliest zijn configuratie als de stroom uitgeschakeld wordt. Bij het opstarten van het ontwikkelbord of na een algemene reset, kan de inhoud van het Flash-geheugen op de FPGA geprogrammeerd worden. Het Flash-geheugen zit op de achterkant van het bord en is dus niet te zien in figuur 4.1. LED s en knoppen Het ontwikkelbord bevat ook enkele LED s en knoppen die ook geprogrammeerd kunnen worden. Zo kunnen de LED s gebruikt worden om controlesignalen naar buiten te brengen. De drukknoppen kunnen bijvoorbeeld als reset-ingang geschakeld worden. LED s en knoppen DDR SDRAM FPGA PCI-interface Figuur 4.1: Stratix PCI ontwikkelbord van Altera 30

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

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

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

Ontwerp van wavelettransformaties op FPGA

Ontwerp van wavelettransformaties op FPGA 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

Nadere informatie

FPGA-gebaseerde instructiesetuitbreiding voor videobewegingsschatting

FPGA-gebaseerde instructiesetuitbreiding voor videobewegingsschatting Faculteit Ingenieurswetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout FPGA-gebaseerde instructiesetuitbreiding voor videobewegingsschatting door Pieter-Paul

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

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

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/28464 holds various files of this Leiden University dissertation Author: Jeroen Bédorf Title: The gravitational billion body problem / Het miljard deeltjes

Nadere informatie

n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik

n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik Rick van der Zwet 4 augustus 2010 Samenvatting Dit schrijven zal

Nadere informatie

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding: Programmeren A Genetisch Programma voor het Partitie Probleem begeleiding: Inleiding Het Partitie Probleem luidt als volgt: Gegeven een verzameling van n positieve integers, vindt twee disjuncte deelverzamelingen

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

Het minimale aantal sleutels op niveau h is derhalve

Het minimale aantal sleutels op niveau h is derhalve 1 (a) In een B-boom van orde m bevat de wortel minimaal 1 sleutel en maximaal m 1 sleutels De andere knopen bevatten minimaal m 1 sleutels en maximaal m 1 sleutels (b) In een B-boom van orde 5 bevat elke

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

De statespace van Small World Networks

De statespace van Small World Networks De statespace van Small World Networks Emiel Suilen, Daan van den Berg, Frank van Harmelen epsuilen@few.vu.nl, daanvandenberg1976@gmail.com, Frank.van.Harmelen@cs.vu.nl VRIJE UNIVERSITEIT AMSTERDAM 2 juli

Nadere informatie

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Met bandje vraagt veel minder rekenkracht van de PC (Zowel in DV=Avials HD= MPEG2). HDV1=1280x720p HDV2=1440x1080i. Een bandje moet vanaf de camera via Firewire(ook

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

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

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

Summary in Dutch 179

Summary in Dutch 179 Samenvatting Een belangrijke reden voor het uitvoeren van marktonderzoek is het proberen te achterhalen wat de wensen en ideeën van consumenten zijn met betrekking tot een produkt. De conjuncte analyse

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

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

From Alife Agents to a Kingdom of Queens

From Alife Agents to a Kingdom of Queens From Alife Agents to a Kingdom of Queens Bob Wansink 27 Mei 2010 Deze notitie is een vrije vertaling en uitleg van het gelijknamige artikel in Intelligent Agent Technology: Systems, Methodologies, and

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

Samenvatting Field programmabale gate arrays (FPGA s) Dynamische herconfiguratie.

Samenvatting Field programmabale gate arrays (FPGA s) Dynamische herconfiguratie. Samenvatting Field programmabale gate arrays (FPGA s) zijn heel aantrekkelijk als ontwerpplatform voor digitale systemen. FPGA s zijn geïntegreerde schakelingen die geprogrammeerd of geconfigureerd kunnen

Nadere informatie

Hoe zet ik een geslaagd SBOproject

Hoe zet ik een geslaagd SBOproject Hoe zet ik een geslaagd SBOproject op? Prof. Dirk Stroobandt Universiteit Gent, groep PARIS pag. 1 Eigen situatie Als hoofdaanvrager: GBOU-project RESUME (2003-2006) SBO-project FlexWare (2007-2010) Als

Nadere informatie

Hardware-software Co-design

Hardware-software Co-design Jan Genoe KHLim Versie: maandag 10 juli 2000 Pagina 1 Wat is HW/SW Co-design Traditioneel design: De verdeling tussen de HW en de SW gebeurt bij het begin en beiden worden onafhankelijk ontwikkeld Verweven

Nadere informatie

Mastermind met acht kleuren

Mastermind met acht kleuren Geschreven voor het vak: Wiskunde gedoceerd door H. Mommaerts Onderzoekscompetentie Mastermind met acht kleuren Auteurs: Tom Demeulemeester Pieter Van Walleghem Thibaut Winters 6LWIi 22 april 2014 1 Inleiding

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

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007 Uitgebreide uitwerking Tentamen Complexiteit, mei 007 Opgave. a. Een beslissingsboom beschrijft de werking van het betreffende algoritme (gebaseerd op arrayvergelijkingen) op elke mogelijke invoer. In

Nadere informatie

voor hoge resolutie astrofotografie

voor hoge resolutie astrofotografie voor hoge resolutie astrofotografie 1: hoe komt de kleurinformatie tot stand bij digitale fotografie 2: bouw van de camera 3: resultaten Hoe komt de kleurinformatie tot stand? De pixels van een ccd zijn

Nadere informatie

Cover Page. Author: Vu, Van Thieu Title: Opportunities for performance optimization of applications through code generation Issue Date:

Cover Page. Author: Vu, Van Thieu Title: Opportunities for performance optimization of applications through code generation Issue Date: Cover Page The handle http://hdl.handle.net/1887/18622 holds various files of this Leiden University dissertation. Author: Vu, Van Thieu Title: Opportunities for performance optimization of applications

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

Human Environmental Analysis Eindverslag

Human Environmental Analysis Eindverslag Human Environmental Analysis Eindverslag UrbanScouts: René den Hertog 4015878 Joren Paridaens 3991601 Pim van de Ven 4018613 Zeger-Jan van de Weg 3717259 25 januari 2013 Inhoudsopgave 1 Individuele teamleden

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

Het Queens n 2 graafkleuring probleem

Het Queens n 2 graafkleuring probleem Het Queens n 2 graafkleuring probleem Wouter de Zwijger Leiden Institute of Advanced Computer Science Universiteit Leiden Niels Bohrweg 1 2333 CA Leiden The Netherlands Samenvatting In dit artikel behandelen

Nadere informatie

Een eerste belangrijk deel in dit proefschrift behandelt het automatisch detecteren van shotovergangen in H.264/AVC-gecodeerde videostromen.

Een eerste belangrijk deel in dit proefschrift behandelt het automatisch detecteren van shotovergangen in H.264/AVC-gecodeerde videostromen. Samenvatting De laatste decennia zijn we getuige geweest van een snel stijgende verspreiding en beschikbaarheid van mediabronnen. Deze toename kan hoofdzakelijk toegeschreven worden aan de groei van het

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

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

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

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

TECHNISCHE UNIVERSITEIT EINDHOVEN. Tentamen OGO Fysisch Experimenteren voor minor AP (3MN10) Tentamen Inleiding Experimentele Fysica (3AA10)

TECHNISCHE UNIVERSITEIT EINDHOVEN. Tentamen OGO Fysisch Experimenteren voor minor AP (3MN10) Tentamen Inleiding Experimentele Fysica (3AA10) TECHNISCHE UNIVERSITEIT EINDHOVEN Tentamen OGO Fysisch Experimenteren voor minor AP (3MN10) Tentamen Inleiding Experimentele Fysica (3AA10) d.d. 30 oktober 2009 van 9:00 12:00 uur Vul de presentiekaart

Nadere informatie

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST College 12 Twaalfde college complexiteit 11 mei 2012 Overzicht, MST 1 Agenda voor vandaag Minimum Opspannende Boom (minimum spanning tree) als voorbeeld van greedy algoritmen Overzicht: wat voor technieken

Nadere informatie

Samenvatting. Waarom bewegen we op de manier waarop we bewegen?

Samenvatting. Waarom bewegen we op de manier waarop we bewegen? amenvatting 112 Dit proefschrift gaat over bewegingen en de manier waarop deze gecodeerd zijn in het brein. De bewegingen die we bekeken hebben zijn natuurlijke armbewegingen naar specifieke doelen. Ondanks

Nadere informatie

Algoritmisch denken: analyseren, ontwerpen, beschrijven van oplossingen en implementeren met Alice

Algoritmisch denken: analyseren, ontwerpen, beschrijven van oplossingen en implementeren met Alice Algoritmisch denken: analyseren, ontwerpen, beschrijven van oplossingen en implementeren met Alice HA-9518-04 Alle studierichtingen tweede graad ASO TSO KSO Martine De Belder Werkgroep Handel 2012 Guimardstraat

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

Bijlage Animation Shop 3

Bijlage Animation Shop 3 1 Bijlage Animation Shop 3 Bij Paint Shop Pro 9 wordt het programma Animation Shop 3 meegeleverd. Met Animation Shop kunt u eenvoudige animaties maken die u bijvoorbeeld op uw eigen website kunt gebruiken.

Nadere informatie

n-queens Local Search met Conflict Minimalizatie

n-queens Local Search met Conflict Minimalizatie n-queens Local Search met Conflict Minimalizatie Efficient Local Search with Conflict Minimalization: A Case Study of the n-queens Problem, door Rok Sosič en Jun Gu. Sjoerd van Egmond svegmond@liacs.nl

Nadere informatie

Zoeken met beperkt geheugen. Zoekalgoritmen ( ) College 7: Zoeken met beperkt geheugen. Een representatie van het kleuringsprobleem

Zoeken met beperkt geheugen. Zoekalgoritmen ( ) College 7: Zoeken met beperkt geheugen. Een representatie van het kleuringsprobleem Zoeken met beperkt geheugen Zoekalgoritmen (2009 2010) College 7: Zoeken met beperkt geheugen Dirk Thierens, Tekst: Linda van der Gaag algoritmen voor zoeken met beperkt geheugen zijn ontwikkeld voor problemen

Nadere informatie

Recognition and Detection of Objects Using Visual and Textual Cues S. Karaoğlu

Recognition and Detection of Objects Using Visual and Textual Cues S. Karaoğlu Recognition and Detection of Objects Using Visual and Textual Cues S. Karaoğlu Samenvatting Met dit proefschrift richten we onze aandacht op object herkenning en detectie voor een beter begrip in afbeeldingen.

Nadere informatie

Halma Bot: Monte Carlo versus Alpha-Beta

Halma Bot: Monte Carlo versus Alpha-Beta : Monte Carlo versus Alpha-Beta Inleiding Marijn Biekart-11032278, Artemis Çapari-11336390, Jesper van Duuren-10780793, Jochem Hölscher-11007729 en Reitze Jansen-11045442 Zoeken, Sturen en Bewegen 30 juni

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

HET COBB-DOUGLAS MODEL ALS MODEL VOOR DE NUTSFUNCTIE IN DE ARBEIDSTHEORIE. 1. Inleiding

HET COBB-DOUGLAS MODEL ALS MODEL VOOR DE NUTSFUNCTIE IN DE ARBEIDSTHEORIE. 1. Inleiding HET COBB-DOUGLAS MODEL ALS MODEL VOOR DE NUTSFUNCTIE IN DE ARBEIDSTHEORIE IGNACE VAN DE WOESTYNE. Inleiding In zowel de theorie van het consumentengedrag als in de arbeidstheorie, beiden gesitueerd in

Nadere informatie

Hardware-versnelde bewegingscompensatie in het wavelet-domein voor ultiem schaalbare video

Hardware-versnelde bewegingscompensatie in het wavelet-domein voor ultiem schaalbare video Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Hardware-versnelde bewegingscompensatie in het wavelet-domein voor ultiem schaalbare

Nadere informatie

Non Diffuse Point Based Global Illumination

Non Diffuse Point Based Global Illumination Non Diffuse Point Based Global Illumination Karsten Daemen Thesis voorgedragen tot het behalen van de graad van Master of Science in de ingenieurswetenschappen: computerwetenschappen Promotor: Prof. dr.

Nadere informatie

Examen computerarchitectuur

Examen computerarchitectuur Examen computerarchitectuur Vrijdag 8 juni 2007, 14u00 Prof. Koen De Bosschere Naam, Voornaam: Richting: Belangrijk 1. Vergeet niet uw naam en voornaam te vermelden. 2. Schrijf de antwoorden in de daarvoor

Nadere informatie

Stelsels Vergelijkingen

Stelsels Vergelijkingen Hoofdstuk 5 Stelsels Vergelijkingen Eén van de motiverende toepassingen van de lineaire algebra is het bepalen van oplossingen van stelsels lineaire vergelijkingen. De belangrijkste techniek bestaat uit

Nadere informatie

ling van die eigenschap binnen het model geldt. In het bijzonder bij het wiskundig modelleren van een programma kan een eigenschap met wiskundige zeke

ling van die eigenschap binnen het model geldt. In het bijzonder bij het wiskundig modelleren van een programma kan een eigenschap met wiskundige zeke De Nederlandse samenvatting van een proefschrift is bij uitstek het onderdeel van het proefschrift dat door familie en vrienden wordt gelezen. Voor hen wil ik deze samenvatting dan ook schrijven als een

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

Virtuele Markten Trading Agent Competition

Virtuele Markten Trading Agent Competition Virtuele Markten Trading Agent Competition A smart trading agent Erik Kant (0122246) en Marten Kampman (0240478), 9 november 2007 Naar aanleiding van de Trading Agent Competition voor het vak Virtuele

Nadere informatie

Video. Multimedia Rein van den Boomgaard Universiteit van Amsterdam

Video. Multimedia Rein van den Boomgaard Universiteit van Amsterdam Video Multimedia Rein van den Boomgaard Universiteit van Amsterdam 1 data explosion 1200 lines x 1600 pixels per line RGB, 24 bit (3 bytes) per color pixel Total uncompressed (raw) size is 5.8 Mbyte 36

Nadere informatie

2 Energiemanagement van een draadloos sensornetwerk

2 Energiemanagement van een draadloos sensornetwerk Nederlandse Samenvattingen 13 2 Energiemanagement van een draadloos sensornetwerk Bennie Mols Steeds meer toepassingen bevatten draadloze sensoren die in een netwerk met elkaar communiceren. Hoe kunnen

Nadere informatie

Uitgebreid eindwerkvoorstel Lokaliseren van personen en objecten met behulp van camera s

Uitgebreid eindwerkvoorstel Lokaliseren van personen en objecten met behulp van camera s Uitgebreid eindwerkvoorstel Lokaliseren van personen en objecten met behulp van camera s Sofie De Cooman 21 December 2006 Stagebedrijf: Interne begeleider: Externe begeleider: BarcoView Koen Van De Wiele

Nadere informatie

WISKUNDE B -DAG 2002 1+ 1 = 2. maar en hoe nu verder? 29 november 2002

WISKUNDE B -DAG 2002 1+ 1 = 2. maar en hoe nu verder? 29 november 2002 - 0 - WISKUNDE B -DAG 2002 1+ 1 = 2 maar en hoe nu verder? 29 november 2002 De Wiskunde B-dag wordt gesponsord door Texas Instruments - 1 - Inleiding Snel machtverheffen Stel je voor dat je 7 25 moet uitrekenen.

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

5 Opstellen businesscase

5 Opstellen businesscase 5 Opstellen In de voorgaande stappen is een duidelijk beeld verkregen van het beoogde project en de te realiseren baten. De batenboom geeft de beoogde baten in samenhang weer en laat in één oogopslag zien

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

Oefeningenexamen Informatica: juni 2015

Oefeningenexamen Informatica: juni 2015 Oefeningenexamen Informatica: juni 2015 Voornaam: Naam: IT-nummer: PC-nummer: Vul je naam, IT-nummer en PC-nummer (staat op de computer, bv. PC15) hierboven in. De examenbladen moeten mee afgegeven worden,

Nadere informatie

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands svegmond@liacs.nl 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse

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

Containers stapelen. M.L. Koning april 2013

Containers stapelen. M.L. Koning april 2013 Technische Universiteit Eindhoven 2WH03 - Modelleren C Containers stapelen L. van Hees 0769244 M.L. Koning 0781346 2 april 2013 Y.W.A Meeuwenberg 0769217 1 Inleiding De NS vervoert dagelijks grote hoeveelheden

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

Studie en implementatie van mechanismen voor foutonderdrukking in H.264/AVC

Studie en implementatie van mechanismen voor foutonderdrukking in H.264/AVC Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Studie en implementatie van mechanismen voor foutonderdrukking in H.264/AVC door

Nadere informatie

Inhoud. HOOFDSTUK 1 Logisch denken 9. HOOFDSTUK 2 Geheugen 59. HOOFDSTUK 3 Vaardigheid met getallen 109. HOOFDSTUK 4 Persoonlijke vaardigheden 159

Inhoud. HOOFDSTUK 1 Logisch denken 9. HOOFDSTUK 2 Geheugen 59. HOOFDSTUK 3 Vaardigheid met getallen 109. HOOFDSTUK 4 Persoonlijke vaardigheden 159 Inhoud Inleiding 4 Hoe is dit boek met tests opgebouwd? 5 Gebruiksaanwijzing 6 HOOFDSTUK 1 Logisch denken 9 DOSSIER 1 Ruimtelijk inzicht en oriëntatievermogen 11 DOSSIER 2 Logische reeksen 27 DOSSIER 3

Nadere informatie

A. Wat zijn digitale afbeeldingen? B. Bitonaal, grijswaarden of kleur en de bitdiepte C. Resolutie, bestandsgrootte, compressie en bestandsformaten

A. Wat zijn digitale afbeeldingen? B. Bitonaal, grijswaarden of kleur en de bitdiepte C. Resolutie, bestandsgrootte, compressie en bestandsformaten CURSUS DIGITAAL ATELIER AFBEELDINGEN A. Wat zijn digitale afbeeldingen? B. Bitonaal, grijswaarden of kleur en de bitdiepte C. Resolutie, bestandsgrootte, compressie en bestandsformaten A. Wat zijn digitale

Nadere informatie

I Welke kosten kunnen worden betaald met geld van de Stichting Culemborg 700?

I Welke kosten kunnen worden betaald met geld van de Stichting Culemborg 700? Culemborg 700 Op naar een mooi feestjaar, met een beheerst financieel verloop! Versie van 14 juli 2017 Met dit document zet de Stichting Culemborg 700 (C700) de belangrijkste financieel-organisatorische

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/39637 holds various files of this Leiden University dissertation Author: Smit, Laurens Title: Steady-state analysis of large scale systems : the successive

Nadere informatie

Scriptie over Personal Branding en Netwerking

Scriptie over Personal Branding en Netwerking Scriptie over Personal Branding en Netwerking 1e versie - 16 november 2012 Jana Vandromme Promotor: Hannelore Van Den Abeele 1. Inhoudstafel 1. Inhoudstafel 2. Onderzoeksvragen 2.1 Onderzoeksvraag 1 2.2

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Ieder tweetal heeft nodig: Een kopie van de slagschipspelletjes: 1. 1A, 1B voor spel A, 2B voor spel A, 3B voor spel 3

Ieder tweetal heeft nodig: Een kopie van de slagschipspelletjes: 1. 1A, 1B voor spel A, 2B voor spel A, 3B voor spel 3 Activiteit 6 Slagschepen Zoekalgoritme Samenvatting Computers zijn vaak nodig om informatie te vinden in grote hoeveelheden data. Ze moeten een snelle en efficiënte manier ontwikkelen om dit te doen. Deze

Nadere informatie

De pariteitstestmatrix van de (6,4) Hamming-code over GF(5) is de volgende: [ H =

De pariteitstestmatrix van de (6,4) Hamming-code over GF(5) is de volgende: [ H = Oplossing examen TAI 11 juni 2008 Veel plezier :) Vraag 1 De pariteitstestmatrix van de (6,4) Hamming-code over GF(5) is de volgende: H = [ 1 0 1 2 3 ] 4 0 1 1 1 1 1 (a) Bepaal de bijhorende generatormatrix

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

NUMERIEKE METHODEN VOOR DE VAN DER POL VERGELIJKING. Docent: Karel in t Hout. Studiepunten: 3

NUMERIEKE METHODEN VOOR DE VAN DER POL VERGELIJKING. Docent: Karel in t Hout. Studiepunten: 3 NUMERIEKE METHODEN VOOR DE VAN DER POL VERGELIJKING Docent: Karel in t Hout Studiepunten: 3 Over deze opgave dien je een verslag te schrijven waarin de antwoorden op alle vragen zijn verwerkt. Richtlijnen

Nadere informatie

Figuur 1. Schematisch overzicht van de structuur van het twee-stadia recourse model.

Figuur 1. Schematisch overzicht van de structuur van het twee-stadia recourse model. Samenvatting In dit proefschrift worden planningsproblemen op het gebied van routering en roostering bestudeerd met behulp van wiskundige modellen en (numerieke) optimalisatie. Kenmerkend voor de bestudeerde

Nadere informatie

Inleiding statistiek

Inleiding statistiek Inleiding Statistiek Pagina 1 uit 8 Inleiding statistiek 1. Inleiding In deze oefeningensessie is het de bedoeling jullie vertrouwd te maken met een aantal basisbegrippen van de statistiek, meer bepaald

Nadere informatie

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Uitwerking tentamen Analyse van Algoritmen, 29 januari Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4

Nadere informatie

Practicum algemeen. 1 Diagrammen maken 2 Lineair verband en evenredig verband 3 Het schrijven van een verslag

Practicum algemeen. 1 Diagrammen maken 2 Lineair verband en evenredig verband 3 Het schrijven van een verslag Practicum algemeen 1 Diagrammen maken 2 Lineair verband en evenredig verband 3 Het schrijven van een verslag 1 Diagrammen maken Onafhankelijke grootheid en afhankelijke grootheid In veel experimenten wordt

Nadere informatie

Een eenvoudig algoritme om permutaties te genereren

Een eenvoudig algoritme om permutaties te genereren Een eenvoudig algoritme om permutaties te genereren Daniel von Asmuth Inleiding Er zijn in de vakliteratuur verschillende manieren beschreven om alle permutaties van een verzameling te generen. De methoden

Nadere informatie

Bepaling energie en soortelijke warmte 2D-atoomrooster m.b.v. de Metropolis Monte Carlo methode

Bepaling energie en soortelijke warmte 2D-atoomrooster m.b.v. de Metropolis Monte Carlo methode Bepaling energie en soortelijke warmte 2D-atoomrooster m.b.v. de Metropolis Monte Carlo methode Verslag Computational Physics Sietze van Buuren Begeleider: Prof.Dr. H. de Raedt 29 december 25 Samenvatting

Nadere informatie

Tweede Programmeeropgave Numerieke Wiskunde 1 De golfplaat Uiterste inleverdatum : vrijdag 16 mei 2003

Tweede Programmeeropgave Numerieke Wiskunde 1 De golfplaat Uiterste inleverdatum : vrijdag 16 mei 2003 Tweede Programmeeropgave Numerieke Wiskunde 1 De golfplaat Uiterste inleverdatum : vrijdag 16 mei 2003 I Doelstelling en testcase In deze programmeeropgave zullen we een drietal numerieke integratiemethoden

Nadere informatie

11. Multipele Regressie en Correlatie

11. Multipele Regressie en Correlatie 11. Multipele Regressie en Correlatie Meervoudig regressie model Nu gaan we kijken naar een relatie tussen een responsvariabele en meerdere verklarende variabelen. Een bivariate regressielijn ziet er in

Nadere informatie

De vruchten van een hype: nieuwe en onmogelijke Franklin vierkanten

De vruchten van een hype: nieuwe en onmogelijke Franklin vierkanten De vruchten van een hype: nieuwe en onmogelijke Franklin vierkanten Arno van den Essen June 1, 2007 De recente hype rond het zogenaamde HSA-vierkant heeft in Nederland een ware magische vierkantenrage

Nadere informatie

RSA. F.A. Grootjen. 8 maart 2002

RSA. F.A. Grootjen. 8 maart 2002 RSA F.A. Grootjen 8 maart 2002 1 Delers Eerst wat terminologie over gehele getallen. We zeggen a deelt b (of a is een deler van b) als b = qa voor een of ander geheel getal q. In plaats van a deelt b schrijven

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

wordt dat ze overeenkomen met bewegende objecten. Het algoritme creert een achtergrondmodel gebaseerd op de grootte (in bits) van de macroblokken.

wordt dat ze overeenkomen met bewegende objecten. Het algoritme creert een achtergrondmodel gebaseerd op de grootte (in bits) van de macroblokken. Samenvatting De laatste jaren is het gebruik van bewakingscamera s of videobewakingssystemen exponentieel toegenomen. Een dergelijk systeem beheert de data-input van verscheidene camera s en is verantwoordelijk

Nadere informatie

Examen HAVO. wiskunde B1

Examen HAVO. wiskunde B1 wiskunde B Examen HAVO Hoger Algemeen Voortgezet Onderwijs Tijdvak Donderdag 3 juni 3.30 6.30 uur 20 04 Voor dit examen zijn maximaal 8 punten te behalen; het examen bestaat uit 2 vragen. Voor elk vraagnummer

Nadere informatie

Harmonischen: een virus op het net? FOCUS

Harmonischen: een virus op het net? FOCUS Amplitude Harmonischen: een virus op het net? FOCUS In het kader van rationale energieverbruik (REG) wordt steeds gezocht om verbruikers energie efficiënter te maken. Hierdoor gaan verbruikers steeds meer

Nadere informatie

Het oplossen van vergelijkingen Voor het benaderen van oplossingen van vergelijkingen van de vorm F(x)=0 bespreken we een aantal methoden:

Het oplossen van vergelijkingen Voor het benaderen van oplossingen van vergelijkingen van de vorm F(x)=0 bespreken we een aantal methoden: Hoofdstuk 4 Programmeren met de GR Toevoegen: een inleiding op het programmeren met de GR Hoofdstuk 5 - Numerieke methoden Numerieke wiskunde is een deelgebied van de wiskunde waarin algoritmes voor problemen

Nadere informatie

VOOR HET SECUNDAIR ONDERWIJS

VOOR HET SECUNDAIR ONDERWIJS VOOR HET SECUNDAIR ONDERWIJS Steekproefmodellen en normaal verdeelde steekproefgrootheden 5. Werktekst voor de leerling Prof. dr. Herman Callaert Hans Bekaert Cecile Goethals Lies Provoost Marc Vancaudenberg

Nadere informatie

Problemen herformuleren Leerlingen drukken de probleemstelling uit in eigen woorden.

Problemen herformuleren Leerlingen drukken de probleemstelling uit in eigen woorden. ACTIVITEITEN NAAM activiteit Leeftijdsgroep Markeer de optie. Tijdsduur: Vaardigheden computationeel denken Markeer de opties. Programmeren met Scratch 1 graad secundair onderwijs (12 14 jaar) > project

Nadere informatie

Informatica: C# WPO 7

Informatica: C# WPO 7 Informatica: C# WPO 7 1. Inhoud 1D-arrays, Lijsten 2. Oefeningen Demo 1: Vul de 1D-array Demo 2: Stringreplace Demo 3: Vul de lijst Demo 4: Debug oplossingen demo s 1, 2 en 3 A: Array reversal A: Gemiddelde

Nadere informatie