Implementeren van een fractaalgebaseerde videocodec

Maat: px
Weergave met pagina beginnen:

Download "Implementeren van een fractaalgebaseerde videocodec"

Transcriptie

1 Faculteit Ingenieurswetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Implementeren van een fractaalgebaseerde videocodec door Hans Coppens Promotor: prof. dr. ir. R. Van de Walle Thesisbegeleider: dr. D. De Schrijver Scriptie ingediend tot het behalen van de academische graad van Licenciaat in de Informatica Academiejaar

2 DANKWOORD i Dankwoord Mijn dank gaat uit naar alle mensen die mij dit academiejaar geholpen en gesteund hebben tijdens de realisatie van deze thesis. Eerst en vooral wil ik mijn promotor Rik Van de Walle en begeleider Davy De Schrijver bedanken. Davy had steeds een antwoord klaar voor de vele moeilijke vragen die tijdens de realisatie van deze thesis aan de oppervlakte kwamen. Tot slot wil ik Bart Coppens bedanken voor het nalezen van de scriptie. Hans Coppens, augustus 2007

3 TOELATING TOT BRUIKLEEN ii 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. Hans Coppens, augustus 2007

4 Implementation of a fractal based video codec Hans Coppens Supervisor(s): Davy De Schrijver Abstract In this article we will discuss the implementation and use of a fractal based video codec. We then compare this video codec to a standard video codec to investigate the use of fractals in video codecs. Keywords Fractal, Video Compression, Encoding, Decoding, Implementation. I. INTRODUCTION THE well known problem with the design of a video codec is the inevitable trade-off between the quality of the decoded video and the size of the encoded video. But there are many other trade-offs to be considered when designing a video codec, in some applications a fast encoder is needed whilst other applications may require fast decoding. This is why there are many different video codecs, each with their particular use. Fractal compression, which is based on Iterated Function Systems (IFS), has already been applied to image compression with satisfying results, as demonstrated in [3]. We will try to make use of the advantages of this fractal based approach which has less blocking artefacts at very low bitrates than the commonly used Discrete Cosine Transform (DCT) techniques. We will attempt to create a video codec that performs well at very low bitrates. The fractal based video codec proposed by Chang-Su Kim, Rin-Chul Kim and Sang-Uk Lee in their paper [2] will be implemented and then compared to the commonly used MPEG- 2 part2/h.262 video codec. II. THE DESIGN OF THE VIDEO CODEC The video codec that will be explained will be based on two different techniques, the Circular Prediction Mapping (CPM) and the Non-Contractive Inter-Frame Mapping (NCIM). The first method, CPM, is a fractal based coder while the second method, NCIM, is comparable to the well known motion estimation/motion compensation (ME/MC) techniques that exploit the high temporal correlation between successive frames. A. Circular Prediction Mapping The first n frames of the original video sequence is coded by the CPM technique, for the ease of notation we have chosen n to be 4. The reconstruction of these frames will then be a starting point for the NCIM technique. NCIM is subsequently used to code the following frames with the use of motion vector techniques, using the previous frame as a source for the estimation of the current frame. CPM is a fractal based method, which implies that like all IFS no particular starting point is needed and it is guaranteed to contract towards an attractor. We will attempt to make the attractor as good an approximation of the original frame as possible. At the same time we will have to make sure that the CPM technique is contractive and that there is only one attractor. The first four frames which are to be encoded by the CPM are regarded as one coding group, each frame will be predicted from the four-circularly previous frame as illustrated in Figure 1. Each frame is divided into macroblocks with equal size of 32 by 32 pixels. The macroblocks can be divided into four blocks of size 16 by 16 pixels, this dividing process can be repeated until blocks of size 4 by 4 are yielded, the smallest size allowed for a block. By dividing the frame into blocks of different sizes we create a quadtree, thus enabling the encoder to approximate certain parts of the frame more precisely than others. The resulting blocks are called rangeblocks R i and they are predicted by domainblocks D a(i) of equal size in the previous frame. We will use the following formula to approximate the rangeblock: R i R i = s i Θ(D a(i) ) + o i C Where a(i) denotes the location of the used domainblock and C is a constant block with all pixel values equalling one. The s i and o i coefficients are then obtained by projecting R i onto span { Θ(D a(i) ) } and span{c}. The Θ represents the orthogonalization operator, proposed by [4] for fractal still image coding. This operator ensures that Θ(D a(i) ) and C are orthogonal to each other. Moreover we will choose s i to be equal to 0.9 which will, when combined with the orthogonalization operator, ensure the contractivity of this mapping. Because of the contractivity of the CPM method, the decoder can now approximate the original image by iteratively applying this formula to an arbitrary starting sequence. Fig. 1. The hybrid structure of CPM and NCIM. B. Non-Contractive Inter-Frame Mapping Where the CPM needs to be contractive because it is iteratively used on an arbitrary start sequence, the NCIM technique needs not. This means we no longer have to use the orthogonalization operator and the s i are now no longer limited to [- 1,1]. The frames will we divided into blocks in the same way as in CPM, thus creating rangeblocks which will be approximated by domain blocks in the previous frame as follows: R i R i = s i (D a(i) ) + o i C The s i -value will no longer be required to be in [-1,1]. As demonstrated in Figure 2 s i will now vary from -4.2 to 5.1 depending on the size of the rangeblock. If the rangeblock is large it is highly probable that a true motion is to be represented and thus the s i -value will be near to one, in other words little change in contrast is needed to approximate the rangeblock. Whereas for smaller rangeblocks we can

5 now change the contrast of the domainblock which enables us to handle big changes in the video sequence. Fig. 2. Possible values of the s i -cofficient in NCIM. Fig. 4. The PSNR of the different videosequences. C. Quantization and entropy encoding The decoder will now only need the different coefficients used in the formula and the quadtree information to be able to approximate the original video sequence. Already some compression is achieved by representing the original video by these coefficients, but further compression can be achieved by correctly quantizing these values and entropy coding the resulting values. III. QUALITY COMPARISON OF CPM AND NCIM First we take a look at the difference between the CPM- and NCIM- quality. As shown in Figure 3 the PSNR obtained by CPM in the first four images is significantly lower than the PSNR of the NCIM technique in the other images. This is mainly because the CPM has no reference image to start from whereas the NCIM uses the blocks in the previous frame as the building blocks for the current frame. video codecs was equal so that the decoded videos are comparable. This comparison shows that the MPEG-2 codec produces a far better quality than the video codec proposed in this paper. However, it is possible, through the use of optimizations, to enhance the performance of the latter. One such optimisation is the further compression of the resulting bitstream, another is the use of subpixel motion vectors. With the use of these optimisation the codec would most certainly perform better, however we cannot be sure of the exact increase of quality. V. CONCLUSION Although the comparison proves that the MPEG-2 codec outperforms the codec proposed by this paper, this video codec has not had the same amount of work put into it than the MPEG- 2 codec. So we cannot say that this fractal based approach to video coding could not be a useful one. Some believe the fractal based codec could, in time, be competitive with the MPEG-2 codec for very low bit rates, below 64 Kbytes/sec, and perhaps even outperform the MPEG-2 codec. REFERENCES [1] Chang-Su Kim and Sang-Uk Lee, Fractal coding of video sequence by circular prediction mapping., (NATO)(ASI) on Fractal Image Encoding and Analysis, volume 5, pages 75-88, [2] Chang-Su Kim, Rin-Chul Kim and Sang Uk Lee, Fractal coding of video sequence using circular prediction mapping and noncontractive interframe mapping., IEEE Transactions on Image Processing, volume 7, pages , [3] Y. Fisher, edited by S. S. Chen, A comparison of fractal methods with (DCT) and wavelets., Neural and stochastic methods in image and signal processing (III), Proc. (SPIE) 2304, pages , [4] G. E. Θien and S. Leps y, A class of fractal image coders with fast decoder convergence., Fractal image compression: theorie and application, Y. Fisher, pages , Fig. 3. The PSNR of the different frames in ice. IV. QUALITY COMPARISON OF THIS CODEC AND THE MPEG-2 CODEC To compare the video codec proposed in this paper we need a reference codec, we have selected the MPEG-2/part 2 H.262 and hereafter we will refer to this video codec as the MPEG-2 codec. Because the MPEG-2 codec is a commonly used codec it is a suitable one for comparison. The PSNR values of a number of test video sequences is shown in Figure 4. To obtain these values we have made sure that the compression ratio of both

6 INHOUDSOPGAVE v Inhoudsopgave Dankwoord Toelating tot bruikleen Extended abstract Inhoudsopgave i ii ii v 1 Inleiding 1 2 Achtergrond Beeldcompressie Joint Photographic Experts Group JPEG Fractaalgebaseerde compressietechniek Videocompressie Group Of Pictures Bewegingsvectoren I/P/B-beelden Bestaande videocodecs MPEG-2 part 2 / H MPEG-4 part 10 / H Dirac Fractalen en videocompressie Werking CPM: Circular Prediction Mapping Opsplitsen in makroblokken Naamgevingen Benadering van een range blok Contractiviteitsvoorwaarde

7 INHOUDSOPGAVE vi Encoder Opsplitsing van de makroblokken Decoder NCIM: Non-Contractive Inter-Frame Mapping Werking Kleurenvideo YUV Bitstroom Terminologie Kwantisatie Entropie Huffman-coder Aritmetische coder RLE: Run Length Encoding CPM QuadTree Bewegingsvectoren De o i -waarden NCIM QuadTree Bewegingsvectoren De o i -waarden De s i -waarden Totale bitstroom Implementatiedetails Programmaspecificaties Bewegingsvectoren Entropiecoder Beginbeeld voor de CPM Afronding van de o i -waarden Y-component Bepaling verschil tussen o i -waarden Vergelijking met MPEG Peak signal-to-noise ratio (PSNR) Optimale kwaliteitsparameter Referentiecodec Vgl resultaten

8 INHOUDSOPGAVE vii 6.5 Besluit Optimalisaties Bewegingsvectoren Distributie Zoekgebied o i -waarden Contractive Prediction Mapping Non-Contractive Inter-frame Mapping QuadTree structuur Delta Snelheid van de codec Bewegingsvectoren s i -waarden Mean Squared Error Besluit 51 A Bijlages 53 A.1 Bijlage A A.2 Bijlage B Bibliografie 55

9 INLEIDING 1 Hoofdstuk 1 Inleiding Wanneer we bewegend beeld willen vatten in digitale vorm dan worden we al snel geconfronteerd met praktische beperkingen aangaande opslagcapaciteit en bandbreedte. Een HDTV camera genereert meer dan een miljard bits per seconde aan video. Als we films willen kunnen opslaan op Digital Versatile Disc (DVD) en als we digitale televisie willen laten passen in de bandbreedte die de tv kanalen aanbieden dan is compressie noodzakelijk. Videcodecs vormen een antwoord op deze problematiek. Ze pogen de data te comprimeren met een zo laag mogelijke impact op de kwaliteit van de beelden. Hiervoor maken ze gebruik van de redundantie die inherent is aan video. Zo komt het vaak voor dat delen van een beeld weinig wijzigen in een opeenvolging van beelden; videocodecs maken van deze temporele redundantie gebruik om de beelden te comprimeren. Anderzijds kunnen ook binnen eenzelfde beeld grote oppervlakken gevonden worden met eenzelfde kleur. Deze spatiale redundantie biedt opnieuw mogelijkheden tot compressie van de video. Videocodecs vinden we zowat in alle toepassingen die gebruik maken van video. Zo maakt DVD bijvoorbeeld gebruik van de MPEG-2 part 2 /H.262 videocodec. De nieuwere MPEG- 4 part 10 /H.264 videocodec wordt dan weer vaak gebruikt om video te streamen over het internet. Deze videcodecs, ontwikkeld door de Moving Picture Experts Group (MPEG), behoren tot de meest gebruikte codecs. Het comprimeren van videobestanden is een moeilijke evenwichtsoefening waarbij de balans tussen de kwaliteit van de video en de hoeveelheid data die nodig is om de beelden op te slaan centraal staat. Er zijn echter nog veel andere factoren die een rol spelen bij het ontwerpen van videocodecs, waarvan we er hier een aantal bespreken.

10 INLEIDING 2 De snelheid van de encoder: Dit is belangrijk bij het opslaan van video beelden. Bij een aantal toepassingen (bijvoorbeeld een digitale camera) is het namelijk noodzakelijk om de videobeelden te kunnen coderen aan de snelheid dat ze binnenkomen. De snelheid van de decoder: Deze speelt een rol wanneer de videobeelden in real-time moeten worden gedecodeerd. Dat is bijvoorbeeld het geval bij televisie. De mogelijkheid om te navigeren in een video: Voor sommige toepassingen, bijvoorbeeld het afspelen van een film, is het belangrijk om voor- of achteruit te kunnen spoelen. Bij andere toepassingen, zoals het streamen van video over het internet, is deze behoefte minder sterk. De mogelijkheid tot temporele schaalbaarheid: Wanneer een video, afhankelijk van de omstandigheden, kan worden afgespeeld in een aantal verschillend beeldratios dan is het noodzakelijk dat de video temporele schaalbaar is. De mogelijkheid tot spatiale schaalbaarheid: Wanneer een video in verschillende resoluties moet kunnen worden getoond dan is de mate waarin de beelden kunnen worden herschaald belangrijk. De mogelijkheid om fouten in de gegevens te compenseren: Bij het streamen van gegevens over het internet kunnen gegevens verlorengaan. De mate waarin de decoder het ontbreken van gegevens kan compenseren zal bepalen hoe goed de videocodec toepasbaar is in dit scenario. Deze factoren verklaren de veelheid aan beschikbare videocodecs, elk met een eigen combinatie van voor- en nadelen en een ideaal toepassingsgebied. In deze thesis wordt een implementatie voorgesteld van een fractaal gebaseerde videocodec. De technieken beschreven in papers X en Y zullen gebruikt worden als basis voor deze implementatie. Vervolgens zal de bekomen videocodec vergeleken worden met de MPEG-2 part 2 /H.262 videocodec teneinde.

11 ACHTERGROND 3 Hoofdstuk 2 Achtergrond Dit hoofdstuk zal trachten om de videocodec die in volgende hoofdstukken zal besproken worden te plaatsen in een ruimer kader. We beginnen met een bespreking van beeldcompressie (de compressie van tweedimensionale afbeeldingen). Daarop voortbouwend beschouwen we vervolgens de videocompressie (de compressie van een opeenvolging van beelden). 2.1 Beeldcompressie Voor het comprimeren van een beeld bestaan reeds vele mogelijke technieken, waarvan slechts enkele hier zullen besproken worden. We zullen twee versies bespreken van Joint Photographic Experts Group (JPEG). Eerst en vooral de oudere versie die gebruik maakt van Discrete Cosine Transform (DCT), vervolgens de nieuwere versie, JPEG2000 genaamd, dewelke van wavelets gebruik maakt. Tenslotte bespreken we een compressie methode die gebaseerd is op fractalen Joint Photographic Experts Group Deze compressiemethode is lossy, wat wil zeggen dat de reconstructie van het originele beeld niet foutloos gebeurt.

12 2.1 Beeldcompressie 4 Blokken In de eerste plaats wordt het beeld onderverdeeld in blokken. Deze blokken zullen dan verder, onafhankelijk van elkaar gecomprimeerd worden. Door deze opsplitsing zullen dus twee blokken die naast elkaar liggen volledig los van elkaar benaderd worden met als gevolg dat de scheidingslijn tussen beide blokken duidelijk zichtbaar kan worden in het gedecomprimeerde beeld. Deze zichtbare fouten, die typisch zijn voor de JPEG compressie noemen we blocking artifacts (blok artefacten). Figuur 2.1: De 64 blokken van de DCT. Discrete Cosine Transformation De DCT zal het originele blok gaan benaderen door een lineaire combinatie van vaste blokken. Op die maneer wordt er overgeschakeld op het frequentiedomein. Deze vaste blokken zijn afgebeeld in Figuur 2.1. Zo kan je zien dat het blok links boven volledig wit is, de coëfficiënt van dit blok noemt men de DC-waarde, terwijl de overige coëfficiënten de AC-waarden worden genoemd. Het menselijk oog is het meest gevoelig aan helderheid, intensiteit over een groot oppervlak, en minder gevoelig aan veranderingen met hoge frequentie, op een kleiner oppervlak dus. Om die reden wordt de DC-coëfficient als belang-

13 2.1 Beeldcompressie 5 rijker beschouwd. Vervolgens worden deze DC-waarde en AC-waarden gekwantificeerd en tenslotte worden deze waarden gebruikt om het oorspronkelijke blok voor te stellen JPEG2000 Deze vaak gebruikte standaard in de beeldcompressie kan in tegenstelling tot JPEG zowel fouthebbend als foutloos werken. JPEG2000 maakt gebruik van een andere compressietechniek dan JPEG, namelijk wavelet transform. Tegels Het beeld wordt opgesplitst in verschillende tegels. De grootte van deze tegels mag door de gebruiker vrij worden gekozen zolang alle tegels maar dezelfde grootte hebben. De tegels worden onafhankelijk van elkaar gecodeerd wat het grote voordeel geeft dat de decoder ervoor kan kiezen slechts een deel van het beeld te reconstrueren. Het gebruik van kleinere tegels kan dan weer leiden tot blok artefacten vergelijkbaar met de JPEG-coder. Wavelet transform Er zijn twee verschillende soorten wavelettransformaties: de Discrete Wavelet Transform (DWT) en de Continuous Wavelet Transform (CWT). Beide technieken maken gebruik van zogenaamde kleine golven om een gegeven afbeelding om te zetten in zijn verschillende frequentiecomponenten 2.2. Het verschil tussen DWT en CWT is het volgende: CWT werkt met continue getallen die bij de kwantisatie dan met verlies, lossy, worden weggeschreven, wat dus resulteert in een fouthebbende beeldcompressie. DWT daarentegen werkt met discrete getallen en kan deze getallen dus zonder probleem verliesloos wegschrijven wat resulteert in een verliesloze beeldcompressie Fractaalgebaseerde compressietechniek Inleiding We zullen deze techniek aan de hand van een voorbeeld uitleggen. Het voorbeeld dat we zullen gebruiken is dat van de Sierpinski-driehoek (Figuur 2.3). Deze driehoek wordt

14 2.1 Beeldcompressie 6 Figuur 2.2: De opdeling van het originele beeld in de verschillende frequentiecomponenten. gecreëerd door op een arbitraire begintekening een functie oneindig maal toe te passen. Deze functie is niks anders dan, zoals uitgebeeld in Figuur 2.5, de oorspronkelijke tekening drie maal op kleinere schaal af te beelden. Zoals in Figuur 2.4 te zien is zal na enkele iteraties de Sierpinski-driehoek al beter herkenbaar worden. Na oneindig veel iteraties zal de Sierpinski-driehoek bekomen worden. Op die manier hebben we dus een functie (zie Figuur 2.5) iteratief toegepast tot een attractor terug gevonden werd. Deze attractor is het beeld naar hetwelk het systeem convergeert, in dit geval dus de Sierpinski-driehoek (zie Figuur 2.3). Dit systeem is beter bekend als Iterated Function Systems (IFS). Figuur 2.3: De Sierpinski driehoek.

15 2.1 Beeldcompressie 7 Figuur 2.4: De (re)constructie van de Sierpinski driehoek van een arbitraire begintekening. Cf [3]. Figuur 2.6 laat een aantal andere voorbeelden van IFS zien. Links staat telkens de functie en rechts de bijhorende attractor. Het zal nu de bedoeling zijn een gepaste functie te vinden zodat vanuit een arbitrair beginbeeld het oorspronkelijke beeld bekomen wordt door het iteratief toepassen van deze functie. Met andere woorden, we willen dat het originele beeld de attractor is. Domeinblokken en rangeblokken Om dit te kunnen bereiken zullen we het te comprimeren beeld opdelen in kleinere blokken. Deze kleinere blokken noemen we de rangeblokken. Vervolgens zullen we deze blokken zo goed mogelijk proberen te benaderen aan de hand van domeinblokken. Deze domeinblokken zijn blokken die dubbel zo groot zijn als de rangeblokken in beide dimensies. Werking De blokken zullen niet worden voorgesteld door DCT coëfficiënten, maar door een transformatie van een ander blok in het beeld. Als voorbeeld zullen we het beeld Lena gebruiken.

16 2.1 Beeldcompressie 8 Figuur 2.5: De werking van 1 iteratie. Cf [3]. In Figuur 2.7 kan je zien hoe verschillende blokjes sterk gelijkend zijn. Het is net deze eigenschap, die in de meeste foto s voorkomt, die hier wordt gebruikt om het beeld te comprimeren. Zo is het kleine blokje in de hoed van Lena goed te benaderen door het groter blokje in de spiegel mits een eenvoudige transformatie, namelijk een rotatie. Door alle blokken te benaderen aan de hand van dergelijke transformaties moeten we enkel nog de transformaties en de plaats van het gebruikte blokje onthouden om het originele beeld te kunnen reconstrueren. Zoals bij een IFS-systeem steeds geldt kunnen we vanuit om het even welk beginbeeld door het iteratief toepassen van de functie, in dit geval de transformaties van de blokjes, het originele beeld reconstrueren. Dit proces wordt geïllustreerd in Figuur 2.8. Een meer gedetailleerde uitleg van de werking van deze fractaalgebaseerde compressietechniek is te vinden in [2]. Fractaal Een fractaal is een geometrische vorm die op elk niveau van vergroting complex en gedetailleerd is. Fractalen hebben vaak de eigenschap dat elk klein deeltje van de fractaal een kleinere kopie is van het geheel. Als je bijvoorbeeld een roosje van een bloemkool afplukt, lijkt het alsof je opnieuw een bloemkool hebt, maar dan in het klein, zoals afgebeeld in Figuur 2.9. Vanwaar nu de naam fractaal gebaseerde beeldcompressie? Net zoals bij IFS vertonen fractalen gelijkenissen op andere schaal. Je kan er delen van de figuur in terug vinden op een kleinere schaal. De beschreven techniek om beelden te comprimeren doet net dat, ze maakt gebruik van het feit dat in een beeld dezelfde figuren meerdere malen voorkomen, zij het op een andere schaal. De fractaalcompressie techniek behaalt vergelijkbare resultaten

17 2.2 Videocompressie 9 Figuur 2.6: Andere voorbeelden van IFS. Cf [4]. als de DCT- en wavelet-gebaseerde technieken, voor een vergelijkende studie zie [3]. 2.2 Videocompressie Group Of Pictures Een Group Of Pictures (GOP) is een verzameling van opeenvolgende beelden. Omwille van de temporele correlatie zullen de beelden binnenin een GOP in grote mate gelijkenissen vertonen en blijven de verschillen tussen de frames dus beperkt. Een video bestaat uit een aaneenschakeling van GOP s, maar aangezien deze GOP s vervolgens helemaal los van elkaar gecomprimeerd worden, zullen we in het vervolg aannemen dat als we over een video praten we eigenlijk een GOP bedoelen. We kunnen namelijk zonder de algemeenheid te schaden enkel de compressie van één enkele GOP bespreken. Wel moeten we hierbij opmerken dat wanneer de lengte van een GOP hoog oploopt dat tot gevolg heeft dat de video niet meer zo random accessible is. Een GOP heeft een typische lengte van 12 tot 15 frames.

18 2.2 Videocompressie 10 Figuur 2.7: De gelijkenissen binnenin de tekening Lena. Cf [3] Bewegingsvectoren Zoals bij de beeldcompressie worden de te comprimeren gegevens ook bij videocompressie in stukken verdeeld die los van elkaar zullen gecomprimeerd worden. Bij videocompressie worden de verschillende beelden die deel uitmaken van een GOP beschouwd als de aparte stukken. Eenmaal de video onderverdeeld is in afzonderlijke beelden kan men de afzonderlijke beelden ook nog onderverdelen in blokken net zoals bij beeldcompressie. Het grootste verschil tussen video- en beeldcompressie is dat bij videocompressie gebruik kan worden gemaakt van de temporele redundantie bovenop de spatiale redundantie die in beeldcompressie gebruikt kan worden. Temporele redundantie komt voort uit het feit dat opeenvolgende beelden vaak gelijkend zijn. Zo is de kans groot dat een blok goed benaderd kan worden door een blok in het vorige beeld, maar dit blok staat niet noodzakelijkerwijze op exact dezelfde plaats. De kans is zelfs groot dat er een, weliswaar kleine, verschuiving op zit. Het is nu net daarom dat de bewegingsvectoren (motionvectors) een belangrijke rol zullen spelen in het comprimeren van een video. De werking en betekenis van deze bewegingsvectoren worden duidelijk weergegeven in Figuur I/P/B-beelden Het beeld voorspellen op basis van een voorgaand beeld noemen we een Predictie-beeld of kortweg een P-beeld. Het is echter niet mogelijk om ieder beeld als een beweging ten opzichte van het vorige beeld te gaan beschouwen zonder een vertrekpunt. Dit vertrekpunt is dus een beeld dat we moeten comprimeren zonder gebruik te maken van een voorgaand beeld. We noemen dit een Intra-beeld of kortweg een I-beeld. Het coderen van zo een beeld kost meestal veel meer bits dan een P-beeld, wat ook logisch is gezien het feit dat

19 2.3 Bestaande videocodecs 11 Figuur 2.8: De reconstructie van het originele beeld. Cf [3]. het beeld op zichzelf hoort te staan en er bijgevolg nog geen gebruik kan gemaakt worden van temporele redundantie. Tenslotte zijn er nog de bidirectionele beelden of kortweg B-beelden. Deze beelden kunnen gebruik maken van beelden voor en achter het huidige beeld. Het gebruik van deze drie mogelijke beelden (zoals weergegeven in Figuur 2.11) is niet willekeurig; zo moet men er bijvoorbeeld op letten geen cirkels te maken zodat alle beelden reconstrueerbaar blijven. 2.3 Bestaande videocodecs Er bestaan heel wat verschillende videocodecs, slechts enkele zullen hier besproken worden. Eerst de MPEG-2 part 2 / H.262 standaard die gebruik maakt van DCT. Ten tweede de MPEG-4 part 10 / H.264 standaarden en ten slotte de fractaalgebaseerde videocodecs.

20 2.3 Bestaande videocodecs 12 Figuur 2.9: Een voorbeeld van fractalen in de natuur MPEG-2 part 2 / H.262 MPEG staat voor Moving Picture Experts Group. MPEG-2 wordt vaak gebruikt voor de opslag van video op DVD en op Super Video CD (SVCD), maar ook vaak voor het transporteren van digitale video, bijvoorbeeld bij digitale kabeltelevisie. Het deel van MPEG-2 dat instaat voor de compressie van de beelden, want er is natuurlijk ook de compressie van het geluid, heet H.262 (hierna MPEG-2 Video). Dat is het deel waarvan we hier in het kort de werking zullen beschrijven. De gecomprimeerde video zal bestaan uit I-, P- en B-beelden, alle drie de soorten zijn toegelaten in MPEG-2 Video. Een I-beeld wordt gecodeerd met behulp van DCT. Terwijl de P en B beelden met behulp van bewegingsvectoren gecomprimeerd worden.

21 2.3 Bestaande videocodecs 13 Figuur 2.10: De bewegingsvector. Figuur 2.11: Een typische opeenvolging van I, P en B-beelden MPEG-4 part 10 / H.264 MPEG-4 part 10 / H.264 (hierna MPEG-4 Visual)is sterk vergelijkbaar met MPEG-2 Video, maar comprimeert wel een heel stuk beter. MPEG-4 bestaat al sinds 1998 en wordt nog steeds vaak gebruikt. Het is dan ook een open standaard waar aan kan toegevoegd worden. Zo bestaat het uit een aantal parts waarvan de belangrijkste part 2 (MPEG-4 SP/ASP) en part 10 (MPEG-4 AVC/H.264) zijn. Typische toepassingen zijn: streaming over het web, videotelefonie en versturen van televisiebeelden. Het is een standaard met heel wat verschillende implementaties voor de videcodec. Enkele bekende zijn DivX, Xvid, H.264 codec. H.264 maakt dus deel uit van de MPEG-4 standaard, met name van part 10 dewelke de naam Advanced Video Coding (AVC) draagt. Het werd ontwikkeld door de Video Coding Experts Group (VCEG) in samenwerking met MPEG. Het samenwerkingsverband tussen beide heet Joint Video Team (JVT). Deze videocodec, die voor het eerst werd verspreid in mei 2003, is een heel stuk beter dan de veel oudere MPEG-2 codec. In die mate zelfs dat het slechts de helft zoveel bits nodig heeft als MPEG-2 om een zelfde beeldkwaliteit te

22 2.3 Bestaande videocodecs 14 bekomen. Een H.264-codec maakt ook gebruik van DCT om I-beelden te coderen. We zullen hier slechts twee optimalisaties van de H.264-codec bespreken maar in 7 komen we hier nog op terug wanneer de mogelijke optimalisaties worden besproken. Ten eerste de bewegingsvectoren kunnen preciezer gekozen worden, het is namelijk mogelijk om een halve pixel op te schuiven, zelfs een kwart pixel opschuiven is mogelijk. Ten tweede is het mogelijk om niet het vorige beeld maar wel het beeld daarvoor te gebruiken om het huidige beeld mee te benaderen. Er worden zelfs tot maximaal 32 beelden gebruikt om het huidige te benaderen. Dit geeft een groot voordeel bij flitsende beelden, waar twee opeenvolgende beelden dan heel verschillend zijn terwijl alle even beelden heel gelijkaardig zijn en ook alle oneven beelden Dirac Een experimentele codec ontworpen door de research afdeling van de British Broadcasting Company (BBC) als basis voor een nieuwe codec voor de verspreiding (doorgeven, transmissie) van video over het internet. Verdere informatie zie Fractalen en videocompressie Daar waar er al heel wat onderzoek is geweest naar het gebruik van fractalen voor beeldcompressie is er nog helemaal niet zo veel onderzocht voor de videocompressie. We bespreken hier kort even een aantal technieken. Deze technieken zijn wel in de meeste gevallen (nog) niet gecomercialiseerd. Self-VQ Bij deze techniek wordt de fractaalcompressie techniek gewoon toegepast net de domeinblokken in het vorige beeld. Aangezien er nu wel sprake is van een bewegingsvector om aan te duiden welk domeinblok uit het vorige beeld gebruikt zal worden om de rangeblok uit het huidige beeld te benaderen kan men spreken van vectoren. Voor meer informatie zie [1].

23 2.3 Bestaande videocodecs 15 3D-fractals Bij deze techniek gaat men de domein- en rangeblokken niet langer als twee dimensionale blokken gaan bekijken maar men gaat de techniek uitbreiden naar drie dimensies door net deze blokken ook driedimensionaal te maken. Verdere informatie zie [5]. 3D+VQ Ook deze techniek maakt gebruik van driedimensionale domein- en rangeblokken. Voor verdere informatie zie [6].

24 WERKING 16 Hoofdstuk 3 Werking De videocodec die hier zal besproken worden is de videocodec voorgesteld in [7] en [8]. Voor de compressie van videosequenties bestaan reeds vele technieken. De meeste zijn gebaseerd op DCT of Wavelets, zoals besproken in het vorige hoofdstuk. De compressietechniek die hier beschreven zal worden is, wat het Circular Prediction Mapping (CPM) deel betreft, echter gebaseerd op IFS. Het gebruik van IFS is tot op heden vooral beperkt gebleven tot de compressie van beelden. Naar de compressie van videosequenties aan de hand van IFS is nog maar weinig onderzoek gedaan. Er is wel een methode ontworpen die de tweedimensionale techniek van de fractale beeldcompressie rechtlijnig heeft doorgetrokken naar het driedimensionale, deze techniek heeft echter een aantal grote nadelen zo is de implementatie ervan heel complex. Naast IFS gebruikt deze videocodec ook de meer bekende bewegingsvectoren technieken, ME/MC (Motion Estimation/Motion Compensation), waar Non-Contractive Inter-frame Mapping (NCIM) sterke gelijkenissen mee vertoont. De videocompressie techniek die hier zal worden onderzocht is er dus één gebaseerd op CPM en NCIM. 3.1 CPM: Circular Prediction Mapping Zoals we hebben gezien in het vorige hoofdstuk zullen de meeste videocodecs gebruikmaken van I-beelden als startpunt voor de B-beelden. Bij deze videocodec zullen we trachten dezelfde kwaliteit te behalen bij dezelfde compressiegraad maar tegelijkertijd het probleem van de I-beelden, namelijk dat ze veel bits kosten om te coderen in vergelijking met de

25 3.1 CPM: Circular Prediction Mapping 17 Figuur 3.1: De hybride structuur van CPM en NCIM. Cf [8]. B-beelden, weg te werken, of tenminste te beperken. Dit door niet één beeld als een I- beeld te beschouwen maar door verschillende beelden samen te nemen en die informatie als een geheel te beschouwen. Zo zal de CPM-techniek de eerste n-beelden samennemen en coderen. Zo kan er beter gebruik gemaakt worden van de temporele redundantie want de I-beelden kunnen nu eenmaal geen gebruik maken van omliggende beelden aangezien ze gecodeerd worden los van alle andere beelden. Het is dus de bedoeling de eerste n beelden te comprimeren met behulp van de CPM techniek. We kunnen dus geen gebruik maken van vorige beelden of beelden verderop in de video. We zullen proberen de temporele redundantie binnen deze n beelden uit te buiten alsook de spatiale Opsplitsen in makroblokken Net zoals bij de fractale beeldcompressie zullen we hier gebruik maken van domeinblokken die rangeblokken zullen benaderen. Het grote verschil is wel dat waar bij de beeldcompressie gekozen wordt voor domeinblokken die dubbel zo groot zijn als de rangeblokken in beide dimensies, we hier zullen kiezen voor een zelfde grootte van range- en domeinblokken. Op die manier kunnen we optimaal gebruikmaken van de temporele correlatie in de vier beelden Naamgevingen De verschillende beelden (B k ) met k in [0,n-1] gelegen, is de verzameling beelden te comprimeren door de CPM. Ieder beeld wordt opgesplitst in blokken van grootte 32 op 32 pixels. Gegeven een rangeblok in beeld k dan zullen we het domeinblok gaan zoeken in het circulair

26 3.1 CPM: Circular Prediction Mapping 18 voorgaande beeld, met andere woorden in B [k 1]n waarbij [k 1] n wil zeggen k-1 modulo n. Aangezien we bij de implementatie ervoor gekozen hebben n gelijk te stellen aan 4 en dus de eerste 4 beelden van de GOP te comprimeren aan de hand van de CPM-techniek zullen we voor de eenvoud van notatie vanaf nu n vervangen door 4. We zullen dus op zoek gaan, voor ieder rangeblok R i in beeld k, naar een blok in het beeld: B [k 1]4 dat een zo goed mogelijke benadering geeft van het rangeblok. Dit domeinblok dat we zullen gebruiken om het rangeblok mee te benaderen ligt op een bepaalde afstand van het range blok. Die afstand is de relatieve verplaatsing of bewegingsvector behorend bij de approximatie van het rangeblok. Deze bewegingsvector zullen we voorstellen als [a] i. Het bijhorende domeinblok stellen we dan voor door D ai Benadering van een range blok Om het verschil tussen benadering en rangeblok zo klein mogelijk te maken laten we toe om het rangeblok niet aan het domeinblok zelf gelijk te stellen maar aan een transformatie van dit blok. Stellen we C een blok van dezelfde grootte als het range- en domeinblok en met constante waarde 1 voor alle pixels, dan bekomen we volgende (on)gelijkheid: R i R i = s i Θ(D ai ) + o i C. Met s i de contrastschaling van het domeinblok (een reële waarde) en o i de luminiciteitschaling van het rangeblok (een reële waarde). Met ander woorden: het rangeblok, R i, wordt benaderd door, Ri, wat gelijk is aan een aantal keer het domeinblok plus een aantal keer een constant blok Contractiviteitsvoorwaarde Bij Θ(D ai ) is Θ de orthogonale operator, zoals uitgelegd in [9] die ervoor zal zorgen dat Θ(D ai ) en C orthogonaal tegenover elkaar staan. Op die manier kunnen we de contractiviteit garanderen door te stellen dat alle s i in het interval ]-1,1[ liggen. Het is belangrijk dat de CPM-techniek contractief is aangezien we moeten kunnen garanderen dat de attractor, in dit geval de eerste vier beelden, bereikt wordt bij het decoderen. Een voldoende voorwaarde om contractief te zijn is dat alle s i in het interval ]-1,1[ liggen. We hebben er dan ook voor gekozen om s i gelijk te stellen aan 0,9. De (on)gelijkheid wordt dus bijgevolg: R i R i = 0,9 Θ(D ai ) + o i C. Op die manier is deze CPM-techniek een IFS en zal het convergent zijn naar één welbepaalde attractor, met andere woorden het decoderen mag het vertrekpunt vrij kiezen en na genoeg iteraties zal een attractor gevonden

27 3.1 CPM: Circular Prediction Mapping 19 worden. Het is nu de bedoeling van de encoder om die attractor zo dicht mogelijk bij de oorspronkelijke video sequentie van vier beelden te krijgen Encoder Om de best mogelijk benadering te vinden voor het rangeblok moeten we nu dus alle mogelijke [a] i (de bewegingsvectoren) en o i (de luminiciteitschaling) in beschouwing nemen. We gaan ons verder beperken tot 256 mogelijke bewegingsvectoren. Welke bewegingsvectoren we in aanmerking laten komen kunnen we in principe vrij kiezen. Maar als we alle bewegingsvectoren nul laten zijn, dan worden alle blokken benaderd door elkaar en dan bekomen we een self-mapping effect. Om dit te vermijden leggen we de beperking op dat alle bewegingsvectoren in het eerste beeld oneven moeten zijn, terwijl in de overige beelden enkel even bewegingsvectoren toegelaten worden. Op die manier kunnen we het self-mapping effect vermijden. De mogelijke bewegingsvectoren in het eerste beeld zijn dan in beide richtingen: { 15, 13, 11,..., 11, 13, 15} pixels terwijl in de overige beelden { 16, 14, 12,..., 10, 12, 14} pixels opgeschoven kan worden. In totaal bekomen we zo 256 verschillende bewegingsvectoren. Figuur 3.2: Illustratie van het self-mapping effect. Cf [7]. In de encoder zullen we bijgevolg alle mogelijke 256 bewegingsvectoren aflopen en de bijhorende optimale waarde voor o i bepalen. Daarnaast hebben we een manier nodig om te kunnen bepalen welke benadering de beste was. Hiervoor zullen we de Mean Squared Error (MSE) gebruiken. Om deze te berekenen stellen we P j gelijk aan de pixel waarde van de j-de pixel in het rangeblok en Q j aan de pixel waarde van de j-de pixel in de benadering van het rangeblok. Dan is de MSE gelijk aan n i=1 (P j Q j ) 2 /n, waarbij n het aantal

28 3.1 CPM: Circular Prediction Mapping 20 pixels in het blok. We duiden nu deze benadering met de laagste bijhorende MSE waarde aan als de beste benadering. Bijgevolg hebben we de volledige vier beelden benaderd aan de hand van [a] i (de bewegingsvector) en o i (de luminiciteit schaling). We moeten hier nog opmerken dat na het coderen van beeld 1 op basis van domeinblokken in beeld 4, beeld 1 vervolgens eerst opnieuw zal gedecodeerd worden aan de hand van de zonet bepaalde benaderingen. Eenmaal het eerste beeld gedecodeerd is kan het gebruikt worden om het tweede beeld te coderen. Bijgevolg zijn de domeinblokken die voor beeld 2 gebruikt worden niet meer afkomstig uit het originele beeld 1 maar wel uit de gedecodeerde versie van beeld 1 wat in de decoder tot veel betere resultaten leidt. Ook beeld 2 zal na het coderen eerst gedecodeerd worden alvorens het gebruikt wordt als basis om beeld 3 te coderen. De rest van het proces verloopt analoog tot uiteindelijk ook beeld 4 is gecodeerd. Voor de berekening van de beste o i waarde en de bijhorende MSE waarde is heel wat tijd nodig. De compressie van deze eerste vier beelden aan de hand van CPM duurt dan ook wel een aantal minuten. Met de correcte optimalisaties zou de tijd nodig voor het coderen sterk verlaagd kunnen worden. Daarover meer in hoofdstuk 7. Maar zelfs met optimalisaties zou deze techniek moeilijk toepasbaar zijn bij de opname van beelden in ware tijd aangezien de encoder het vierde beeld nodig heeft om het eerste te kunnen coderen. Er zou dus een grote vertraging zitten tussen de opname van de eerste beelden en het wegschrijven van de gecodeerde informatie Opsplitsing van de makroblokken Eenmaal een rangeblok benaderd is door de optimale transformatie van het best passende domeinblok kunnen we ook de MSE waarde bereken tussen het originele rangeblok en deze benadering. Aangezien een makroblok een grootte heeft van 32 op 32 pixels kan het gebeuren dat deze benadering nog steeds een grote MSE waarde heeft en dus alsnog een slecht benadering is voor het oorspronkelijke rangeblok. In dat geval kunnen we ervoor kiezen dit blok onder te verdelen in 4 blokken van gelijke grootte. Deze manier van opsplitsen resulteert in een structuur die word weergegeven door een Quad Tree. Zo zal uiteindelijk een boom gecreëerd worden waarbij ieder blad een benadering van een range blok bevat op basis van een domeinblok van dezelfde grootte en ieder vertakking wijst op een te grote MSE-waarde voor dat rangeblok. Natuurlijk moeten we wel ergens deze vertakking stoppen om te vermijden dat we de compressiegraad te veel verlagen. Zo stellen we dat het kleinst mogelijke blok 4 op 4 pixels groot moet zijn. Op die manier kunnen we voor de

29 3.2 NCIM: Non-Contractive Inter-Frame Mapping 21 nodige precisie zorgen daar waar nodig terwijl in de gebieden waar heel weinig verandering optreedt een grote compressie bereikt kan worden Decoder Bij het decoderen gaan we als volgt te werk. Om te beginnen kiezen we voor het vierde beeld een willekeurige tekening. Deze tekening kunnen we vrij kiezen want zoals bij alle IFS is het systeem convergent en mag dus vanuit om het even welk startpunt begonnen worden. Nu we een vierde beeld hebben kunnen we het eerste beeld herstellen aan de hand van volgende formule die we zullen toepassen op ieder blok R i : R i = 0,9 Θ(D ai ) + o i C. Eenmaal dit is bepaald voor alle blokken in beeld één kunnen we doorgaan met de reconstructie van beeld twee op basis van de domeinblokken in het eerste beeld. Zo bekomen we een eerste reconstructie van de beelden. Als we zo blijven doorgaan en deze benaderingsformule blijven toepassen op de beelden dan bekomen we uiteindelijk na heel wat (typisch tussen de 30 en de 50) iteraties de attractor. Eenmaal de beelden niet meer veranderen onder de benaderingsformule mag het decodeerproces dan ook stoppen. Het proces convergeert niet snel maar aangezien we vier beelden tegelijkertijd herstellen is de totale tijd nodig voor de reconstructie van één beeld niet al te groot. Er zijn dan ook niet veel berekeningen nodig per pixel per iteratie zodat de reconstructie, die gemiddeld een 20-tal iteraties nodig heeft en met andere woorden ieder beeld 5 keer herbenaderd, vrij snel kan gebeuren zeker in vergelijking met het bijzonder trage encodeerproces. 3.2 NCIM: Non-Contractive Inter-Frame Mapping Eenmaal de CPM-techniek toegepast is op de eerste 4 beelden beschikken we over een startpunt om verdere beelden te benaderen aan de hand van bewegingsvectoren. Met andere woorden, we hebben een I-beeld bepaald met CPM, namelijk het vierde beeld. We zullen nu verder gebruikmaken van bewegingsvectoren om verdere beelden te benaderen, met andere woorden P-beelden. Het eerste beeld dat door de NCIM techniek gecodeerd zal worden is dan ook het vijfde beeld van de GOP.

30 3.2 NCIM: Non-Contractive Inter-Frame Mapping Werking De gebruikte techniek, NCIM, toont grote gelijkenissen met de benadering van P-beelden in motion compensation technieken. We zullen hier het beeld opdelen net zoals bij CPM in blokken van 32 op 32 pixels en net zoals bij CPM zullen we de encoder de kans geven deze blokken verder op te splitsen tot blokken van minimale grootte 4 bij 4 pixels. De benadering van ieder blok gebeurt aan de hand van dezelfde formule als in CPM: R i R i = s i (D ai ) + o i C. Let wel, hier is de orthogonale operator die bij CPM de contractieviteit garandeerde niet meer noodzakelijk en deze wordt dan ook niet gebruikt in NCIM. De verschillende a i -waarden of dus de bewegingsvectoren zullen nu niet meer beperkt moeten worden tot enkel de even of oneven waarden. We zullen nog steeds kiezen voor 256 verschillende mogelijke vectoren, maar nu kiezen we die in het gebied van 16 op 16 pixels gecentreerd rond het oorspronkelijk te benaderen blok (in het voorgaande beeld). De s i -waarde wordt hier niet meer verondersteld 0,9 te zijn, zoals in CPM wel het geval was. Hier kan s i vrij gekozen worden, wat tot gevolg heeft dat de bepaling van de optimale s i en o i combinatie horend bij ieder blokje D ai bijzonder complex wordt. Vandaar dat we, net zoals we a i hebben beperkt tot een aantal mogelijke waarden, ook s i zullen beperken tot een aantal mogelijke waarden. De mogelijke waarden van s i zijn wel afhankelijk van de grootte van het blok dat benaderd moet worden, zie Tabel 3.1. Tabel 3.1: Mogelijke waarden voor de s i coëfficiënt in NCIM. Blok grootte Interval Stapgrootte Aantal waarden 32x32 {0.8, 0.9, 1.0, 1.1} x16 {0.3, 0.4,..., 1.7, 1.8} x8 { 0.8, 0.7,..., 2.2, 2.3} x4 { 4.2, 3.9,..., 4.8, 5.1} Hoe groter een blok, hoe meer pixels, hoe meer berekeningen er nodig zijn om de benadering aan de hand van een mogelijke s i -waarde te bepalen. Vandaar dat er voor gekozen wordt om grotere blokken van een kleiner aantal mogelijke s i -waarden te voorzien. Wanneer er sprake

31 3.2 NCIM: Non-Contractive Inter-Frame Mapping 23 is van weinig tot geen contrastverandering tussen de twee blokken dan zal s i in de nabijheid van 1 liggen. Aangezien dit het meest voorkomende geval is krijgen we dan ook een verdeling rond de 1. Voor een 4 op 4 blok is het ook mogelijk om heel grote veranderingen tussen twee opeenvolgende beelden op te vangen door de grote contrastschaling die we nu kunnen gebruiken. Encoder Op deze manier kan een beeld gereconstrueerd worden op basis van het voorgaande beeld. Willen we nu verder gaan en ook het volgende beeld gaan coderen dan moeten we als basis het vorige beeld eerst decoderen. Met andere woorden, de domeinblokken die zullen gebruikt worden voor de benadering van beeld 6 zijn niet de blokken van beeld 5 maar wel de blokken van het gedecodeerde beeld 5. Aangezien de decoder het oorspronkelijke beeld 5 niet kent en dus enkel gebruik kan maken van het gedecodeerde beeld 5 zullen we dus aan encoder zijde hetzelfde, zij het foutieve, beeld gebruiken om het volgende te coderen. Convergentie Het is dan ook niet belangrijk dat deze techniek contractief is. Het bekomen, gedecodeerd, beeld mag zelfs grote fouten bevatten zonder dat dit tot gevolg heeft dat het volgende beeld niet gedecodeerd zou kunnen worden. Al zal de fout op volgende beelden er in zekere mate onder lijden, het zal er nooit voor zorgen dat de reconstructie divergent wordt. Aangezien de CPM-techniek convergent is en verantwoordelijk is voor het berekenen van het startpunt, in dit geval het vijfde beeld, en aangezien steeds het gedecodeerde beeld zal gebruikt worden voor het coderen van het volgende beeld kunnen we stellen dat ook de totale techniek (CPM gevolgd door NCIM) convergent is. Decoder Hier zullen we het oorspronkelijke beeld proberen herstellen door gebruik te maken van de formule: R i R i = s i (D ai ) + o i C. Dit zal slechts eenmaal toegepast worden per blok, het is dus geen iteratief proces zoals bij de CPM. Daardoor is deze decoder erg snel, er zijn heel weinig berekeningen nodig per pixel om het beeld te herstellen.

32 3.3 Kleurenvideo Kleurenvideo Tot nog toe hebben we steeds stilzwijgend aangenomen dat de video sequentie zwart-wit is. In de praktijk is dit voor de meeste videosequenties niet het geval. We zullen hier aantonen hoe we daar mee om kunnen gaan YUV In de eerste plaats moeten we opmerken dat het oog vooral gevoelig is aan een verandering in lichtintensiteit, met andere woorden aan de zwart-wit component. Het menselijk oog is in mindere mate gevoelig aan de verandering in kleurtinten. Juist daarom zullen we de kleurwaarde van iedere pixel gaan voorstellen in de YUV-kleurenruimte. Waarbij Y staat voor de lichtintensiteit-component (Luma), terwijl U en V de twee kleurcomponenten (chroma) zijn. In Figuur 3.3 zie je een tekening met zijn bijhorende Y, U en V component. Figuur 3.3: Van links naar rechts: het oorspronkelijk beeld, Y-, U- en V-component. Onderbemonstering Bij de video compressie zullen we vaak gebruikmaken van de YUV 4:2:0 kleurenruimte om de oorspronkelijke beelden te onderbemonsteren. Zoals in Figuur 3.4 te zien is zullen voor ieder blok van 2 bij 2 pixels alle Y-waarden behouden blijven terwijl voor de kleurcomponenten slechts 1 waarde wordt bewaard. Zo bekomen we een lagere resolutie voor de U en V componenten, namelijk 4 keer zo klein als die van de Y component. Aangezien, zoals eerder vermeld het menselijk oog niet zo gevoelig is voor de chroma-componenten als voor de Luma-component zal deze onderbemonstering van de kleurcomponenten de visuele kwaliteit niet sterk benadelen. We zullen verder steeds veronderstellen dat de video eerst wordt onderbemonsterd tot YUV 4:2:0.

33 3.3 Kleurenvideo 25 Figuur 3.4: De werking van de onderbemonstering van YUV 4:2:0. Coderen van het YUV 4:2:0 formaat Vervolgens zal de Y-component gecodeerd worden zoals eerder uitgelegd. Met andere woorden, voor ieder blok wordt een benadering gezocht aan de hand van de formule: R i R i = s i (D ai ) + o i C. Waarbij voor de verschillende pixelwaarden steeds enkel de Y- component gebruikt wordt. Na het bepalen van de beste benadering van de Y-component van het blok zullen we nu gebruik maken van een zelfde bewegingsvector en ook een zelfde blokgrootte om de U- en V-componenten afzonderlijk te gaan benaderen aan de hand van dezelfde formule. Zo bekomen we slechts één quad tree structuur per beeld en slechts één bewegingsvector per blok maar wel drie s i en o i waarden per blok. Door de U- en V-component te verplichten dezelfde bewegingsvector als de Y-component te gebruiken moeten we later minder gegevens onthouden. Dit is geen oorzaak voor significant kwaliteitsverlies omdat, zoals reeds vermeld, de kwaliteit van de U- en V-componenten van ondergeschikt belang is en omdat in de meeste gevallen de bewegingsvector van de Y-component perfect bruikbaar is en het bijhorende blok D ai een goede benadering kan bieden voor R i. Zoals eerder vermeld ligt de resolutie van de chroma componenten vier maal lager dan die van de Luma component. Om die reden en omdat de blokgrootte constant gehouden wordt moeten we vier maal minder informatie opslaan voor de U- en V-componenten in vergelijking met de Y-component.

34 BITSTROOM 26 Hoofdstuk 4 Bitstroom Het is de bedoeling in dit hoofdstuk dieper in te gaan op de bitstroom die weggeschreven wordt. Eenmaal de verschillende waarden berekend zijn, moeten die ook met behulp van zo weinig mogelijk bits weggeschreven worden om een zo hoog mogelijke compressie te bekomen. We zullen eerst een aantal begrippen uitleggen die nodig zijn om verdere besprekingen te begrijpen. Vervolgens zullen we iedere parameter afzonderlijk beschouwen en kijken hoe we de grootte ervan kunnen minimaliseren en ten slotte bekijken we de totale bitstroom die de gecomprimeerde video sequentie moet voorstellen. 4.1 Terminologie Kwantisatie Alvorens de gegevens op te slaan in de bitstroom, zullen we eerst de gegevens in omvang proberen te beperken. We zullen zo weinig mogelijk bits wegschrijven, enkel die bits die strikt noodzakelijk zijn voor de fouthebbende reconstructie van het origineel. Stel dat we het getal moeten wegschrijven, dan kan in sommige gevallen het getal 0.15 al nauwkeurig genoeg zijn om het origineel, zij het met een klein verlies aan precisie, te reconstrueren.

35 4.1 Terminologie Entropie Gegeven een grootheid, een variabele, met waarden gelegen in de verzameling S. Dan is de n entropie gedefinieerd als η = Entropie(S) = p i log 2 p i. Bij wijze van voorbeeld beschouwen we Figuur 4.1, waar gebruik is gemaakt van de verzameling S={0, 1, 2,..., 254, 255}. i=1 Figuur 4.1: 2 verschillende verdelingen. Zoals je kan zien op de figuur is de linkse verdeling uniform, wat wil zeggen dat de kans op voorkomen voor alle elementen uit S even groot is, in dit geval is p i voor alle i gelijk aan 1/256. Zo zal de entropiewaarde behorend bij deze verdeling 8 zijn. Met andere woorden, we zullen gemiddeld minstens 8 bits nodig hebben om een symbool uit S voor te stellen. De rechtse verdeling daarentegen heeft slechts 2 verschillende waarden die voorkomen. De kans is dan ook voor 0, 1/3 of 2/3. De entropie horend bij deze verdeling is dan: 1/3log 2 1/3 + 2/3log 2 2/ Wat dan weer betekent dat hier slechts minstens 0.3 bits zullen nodig zijn om een symbool uit deze verzameling voor te stellen. Een entropie coder zal hiervan zo goed mogelijk proberen gebruik maken. Om dit te verduidelijken bespreken we hieronder een aantal voorbeelden van entropie coders Huffman-coder De Huffman-codeertechniek, voor het eerst beschreven door David Huffman in 1952, is een algoritme voor het coderen van gegevens zonder verlies aan informatie (lossless). De techniek maakt gebruik van entropie om de gegevens maximaal te comprimeren. Het algoritme wordt hier beschreven aan de hand van een voorbeeld weergegeven in Figuur 4.2. Stel we willen de tekst this is an example of a huffman tree comprimeren. Dan

36 4.1 Terminologie 28 zijn in dit geval de verschillende letters de symbolen van de verzameling S. Dit geeft in totaal 16 verschillende symbolen in S={a, e, f, h, i, l, m, n, o, p, r, s, t, u, x, spatie}. Zonder compressie zouden we per symbool 4 bits nodig hebben aangezien we met 4 bits 2 4 =16 verschillende symbolen kunnen aanduiden. Aangezien er in totaal 36 symbolen staan in de tekst bekomen we dus 36*4 bits of dus 144 bits. Met de ideale compressie techniek zouden we slechts η = Entropie(S) = bits per symbool nodig hebben. Figuur 4.2: De Huffmanboom. Bij de Huffman-techniek zal eerst een tabel worden opgesteld van alle symbolen die in de tekst voorkomen met hun bijhorende waarschijnlijkheden. Dan zal een boom gemaakt worden zoals in de Figuur 4.2 te zien is. Deze boom bekomen we door steeds de twee symbolen met laagste probabiliteit samen te nemen tot één symbool met als probabiliteit de som van de probabiliteiten van de oorspronkelijke symbolen. Tenslotte krijgt ieder symbool een codewoord toegekend op basis van de positie in de boom, zie Tabel 4.1. Zo zal het symbool met hoogste prioriteit ook het kortste codewoord toegekend krijgen. Als we nu voor de oorspronkelijke tekst de Huffman-code bepalen dan hebben we daar in totaal 135 bits voor nodig. Dat betekent een gemiddelde van 3.75 bits per symbool, hetgeen de theoretisch best mogelijke oplossing van bits benaderd. Tabel 4.1: Frequentie tabel van het voorbeeld in Figuur 4.2. Symbool Frequentie Codewoord spatie a e f h

37 4.1 Terminologie 29 Tabel 4.1: Frequentie tabel van het voorbeeld in Figuur 4.2. Symbool Frequentie Codewoord i m n s t l o p r u x Bij deze codeertechniek moeten dus niet alleen de codewoorden maar ook de boom worden doorgegeven. De decoder moet namelijk dezelfde codewoorden met dezelfde symbolen kunnen koppelen. Het kan natuurlijk ook zijn dat de probabiliteiten vastliggen (en dus ook de boom) in welk geval men kan overeenkomen hoe de boom eruit ziet zodat deze niet langer meegegeven hoeft te worden. Let ook op het feit dat het einde van een codewoord ondubbelzinnig bepaald is; wanneer we een blad bereiken in de boom dan betekent dat het einde van het codewoord en vinden we een symbool, wanneer we daarentegen een knoop vinden moeten we nog verder afdalen Aritmetische coder Net zoals bij de Huffman-coder is het de bedoeling om zo weinig mogelijk bits per symbool te gebruiken, ideaal dus slechts η. Ook hier wordt een tabel opgesteld van alle symbolen met hun bijhorende probabiliteiten. De aritmetische coder zal nu een getal bepalen in het interval [0,1] en dat getal stelt dan de oorspronkelijke sequentie van symbolen voor. Het proces gaat als volgt te werk. Als er N verschillende symbolen S i zijn, dan wordt het interval [0,1] in N stukken met grootte p S i verdeeld. Zoals in de Figuur 4.3 waar er

38 4.2 CPM 30 4 verschillende symbolen {A, B, C, D} worden afgebeeld met hun respectievelijke probabiliteiten {0.6, 0.2, 0.1, 0.1}. Het eerste symbool dat ingelezen wordt is A, waardoor het interval nu verkleind wordt tot [0,0.6]. Vervolgens lezen we het symbool C in waardoor we nu het interval [0.48, 0.54] verder zullen beschouwen. Dan krijgen we tenslotte nog het symbool D. Als we nu het getal opslaan, dan stelt dit getal de sequentie ACD voor. Figuur 4.3: De opsplitsing van het interval [0,1] RLE: Run Length Encoding Deze techniek maakt geen gebruik van entropie of probabiliteiten, maar van het meerdere keren na elkaar voorkomen van hetzelfde symbool in een sequentie. Dit is zeker niet het geval in alle sequenties, maar bijvoorbeeld wel in deze: WWWWWWWWWWWWBW- WWWWWWWWWWWBBBWWWWWWWWWW. Deze sequentie kan dan ook heel sterk gecomprimeerd worden door RLE tot 12WB12W3B10W wat zoveel betekend als 12 keer het symbool W gevolgd door B en dat opnieuw 12 keer W dan drie keer B en tenslotte nog 10 keer W. Deze techniek geeft zelden een grote compressie omdat sequenties zoals het aangehaalde voorbeeld niet vaak voorkomen. Wel kan men de data eerst bewerken op een manier dat de bekomen sequentie wel van de vorm van het voorbeeld om vervolgens, met succes, de RLE-coding toe te passen. 4.2 CPM Bij de CPM-techniek wordt het beeld onderverdeeld in blokken van 32 op 32 pixels maar deze kunnen verder nog onderverdeeld worden tot blokken met een minimale grootte van

39 4.2 CPM 31 4 op 4 pixels. Deze opsplitsing noemen we een QuadTree. De beschrijving van deze opsplitsing moet dus worden opgeslagen zodat de decoder deze kan gebruiken voor de reconstructie. Verder moet de decoder ook de coëfficiënten kennen om de range blokken te kunnen reconstrueren op basis van de domeinblokken. Deze benadering wordt bepaald door: R i R i = s i Θ(D ai ) + o i C, waarbij s i constant gekozen was (0.9) zodat nu enkel nog a i en o i moeten onthouden worden. Zoals eerder vermeld zal de bewegingsvector (a i ) voor alle drie de YUV-componenten dezelfde blijven, we moeten bijgevolg nog maar één a i per blok onthouden en verder ook nog drie verschillende o i per blok. We zullen nu verder bespreken hoe we deze gegevens zo kort mogelijk en met zo weinig mogelijk verlies aan informatie kunnen wegschrijven QuadTree Zoals eerder vermeld hebben we per beeld slechts 1 QuadTree structuur die onthouden moet worden. Hier kan geen kwantisatie gebruikt worden aangezien deze gegevens verliesloos moeten worden opgeslagen. Als een blok opgedeeld is in 4 kleinere blokken dan geven we deze kleinere blokken een logische volgorde geven zoals aangegeven in Figuur 4.4. Als we vervolgens de QuadTree voorstellen voor ieder blok van 32 op 32 pixels dan bekomen we de Figuur 4.5, om deze structuur weg te schrijven zullen we een 1 wegschrijven voor iedere knoop die opgesplitst wordt en een 0 voor een blad. We zullen de boom diepte-eerst doorlopen. Zo bekomen we in het geval van Figuur Het is duidelijk dat een blok van grootte 4 op 4 pixels niet verder opgesplitst kan worden, we moeten bijgevolg voor deze blokken geen 0 meer wegschrijven, zo bekomen we Deze boom komt overeen met de opdeling van het blok (32 op 32 pixels) weergegeven in Figuur 4.6. Figuur 4.4: De volgorde van sub-blokken. Cf [10]. We zullen nu van links naar rechts en van boven naar onder de verschillende blokken van grootte 32 op 32 pixels doorlopen in het beeld en de verschillende QuadTree s achter

40 4.2 CPM 32 Figuur 4.5: De QuadTree horend bij 4.6. Cf [10]. Figuur 4.6: Het originele 32x32 blok. Cf [10]. elkaar uitschrijven. Zo bekomen we een heel korte bitstroom voor de voorstelling van de QuadTree Bewegingsvectoren Aangezien de bewegingsvectoren voor de drie componenten Y,U en V gemeenschappelijk zijn moeten we dus slechts 1 bewegingsvector wegschrijven. De bewegingsvectoren hebben een speciale verdeling, het is namelijk waarschijnlijker dat de waarden klein zullen zijn. Voor het eerste beeld is dit minder waar omdat de bewegingsvectoren het eerste beeld benaderen op basis van het vierde beeld, wat in de tijd verder verwijderd is. Ook worden slechts weinig mogelijke bewegingsvectoren in acht genomen wat de verdeling wat meer uniform maakt. Met als gevolg dat zonder gebruik te maken van aangepaste Huffmanntabellen er weinig tot zelfs geen compressie mogelijk is. Deze bewegingsvectoren worden dan ook niet door een entropiecoder gestuurd en worden verliesloos weggeschreven. Aangezien er 256 mogelijke bewegingsvectoren zijn heeft dit als gevolg dat er 8 bits nodig zijn per blok om de bewegingsvector weg te schrijven De o i -waarden In deze paragraaf onderzoeken we de boven- en ondergrens van deze variabele. Uit de gebruikte formules blijkt dat om van een wit blokje een zwart te maken een o i -waarde van -230 nodig is, want 0(rangeblok) = 255(domeinblok)* en om van een zwart

41 4.2 CPM 33 blok een wit blok te kunnen maken is een o i waarde van 255 nodig, want 255(rangeblok)=0(domeinblok)* We kunnen dus besluiten dat deze variabele in het interval [-230, 255] ligt. Maar deze waarden zijn wel komma getallen en we moeten ze dus gaan kwantiseren, we moeten beslissen hoe correct we de waarden willen onthouden. Beschouwen we vervolgens volgende voorbeeld. Stel dat alle pixels in alle vier de beelden de waarde 126 hebben dan zou een encoder als o i -waarde 12.6 uitkomen. Als we kwantiseren naar gehele getallen dan zouden we dus het getal 13 inlezen bij de decoder. De decoder zou dan bij de reconstructie van de beelden alle pixels de waarde 130 toekennen, wat een fout is van 4 waarden bij iedere pixel, wat een significant verlies aan precisie betekent. Om het beeld foutloos te kunnen herstellen zouden we 3 extra bits moeten wegschrijven opdat de decoder het getal zou inlezen. Maar er wordt gekozen voor een fouthebbende compressie die slechts 2 extra bits wegschrijft waardoor de decoder het getal 12.5 zal herstellen wat dan resulteert in pixels met waarde 125 en dus een fout van waarde 1 bij alle pixels, wat een aanvaardbare fout is. Om het volledige bereik te beslaan hadden we reeds 9 bits nodig, want we hebben meer dan 256(=2 8 ) verschillende waarden en minder dan 512(=2 9 ). Maar om de hierboven besproken extra precisie tot op een kwart van de oorspronkelijke waarde toe te laten moeten we dus in totaal 11 bits wegschrijven. De verdeling is echter helemaal niet uniform. Zo zal het zelden voorkomen dat uit een zwart blok een wit moet worden hersteld. Wat het meest voorkomt is dat de blokjes sterk op elkaar lijken en dat de o i waarde net een tiende is van de gemiddelde waarde van het blokje. De meest voorkomende waarden zijn dan ook De laatste drie bits echter, die nodig zijn voor de nauwkeurigheid zijn wel uniformer verdeeld. Daardoor is er voor gekozen de eerste 8 bits te encoderen met behulp van een Huffmann-coder en de laatste 3 bits zonder verdere compressie weg te schrijven. Vervolgens moet er nog worden opgemerkt dat de waarschijnlijkheid groot is dat de o i waarde van een blok en de o i waarde van hetzelfde blok in het volgende beeld dicht bij elkaar liggen. Daarom wordt het verschil tussen deze 2 o i waarden weggeschreven in de plaats van de waarden zelf. Uiteraard moeten we de waarden van het eerste beeld, het startpunt wel volledig wegschrijven. Deze verschilwaarden zijn dan ook gemiddeld iets kleiner maar zeker niet veel aangezien een andere bewegingsvector tot gevolg heeft dat ook de o i waarde sterk verschillend is en op die manier kunnen beduidend grotere waarden bekomen worden. De verdeling is dus niet significant beter en de compressie gaat er slechts

42 4.3 NCIM 34 licht op vooruit door deze verschilfunctie. 4.3 NCIM Bij de NCIM techniek wordt het beeld, net zoals bij CPM, onderverdeeld in blokken van 32 op 32 pixels en onderverdeeld aan de hand van een QuadTree op net dezelfde manier als bij CPM. Verder is de benadering van een blok wel licht verschillend, we herinneren even aan de gebruikte formule: R i R i = s i (D ai ) + o i C, waarbij s i nu wel verschillende waarden kan aannemen. Net zoals bij CPM zullen de QuadTree structuur en de bewegingsvectoren slechts 1 keer per beeld worden onthouden en zullen de s i en o i waarden voor iedere component apart opgeslagen worden QuadTree Deze wordt op exact dezelfde wijze als bij CPM weggeschreven Bewegingsvectoren Zoals bij CPM zijn er slechts 256 mogelijke bewegingsvectoren en omdat de optimale combinatie wordt gezocht van bewegingsvector, s i en o i is het nu ook mogelijk een blokje te nemen dat net iets verder ligt en dat een net iets betere benadering is. Het gebied waarin de bewegingsvectoren moeten blijven is ook bijzonder klein, het is een 16 op 16 vlak gecentreerd rond het blok, waardoor er eigenlijk al impliciet een beperking is tot kleine bewegingsvectoren. Daardoor heeft de verdeling een hoge entropiewaarde en is er ook voor gekozen deze waarden niet verder te comprimeren De o i -waarden De o i waarden hebben nu een veel groter interval. s i staat namelijk niet meer vast op 0.9, maar kan ook waarden als -4.2 aannemen. Hier mag de o i -waarde wel worden afgerond op een geheel getal aangezien dat bij de reconstructie door de decoder slechts een heel klein verlies zou betekenen in vergelijking met de CPM-methode. Er is voor gekozen de o i waarden in hun bereik te beperken tot -127, 128. Deze beperking zorgt ervoor dat er 8 bits nodig zijn om deze waarden weg te schrijven. Dit zorgt er echter ook voor dat de kracht van

43 4.4 Totale bitstroom 35 de s i waarden niet optimaal wordt benut en dat niet alle mogelijkheden worden onderzocht. Door het bereik van deze variabele te vergroten en bijgevolg het aantal bits voor het wegschrijven van de o i waarden te vergroten zou de reconstructie betere kwaliteit kunnen opleveren omdat dan grotere contrasten gebruikt kunnen worden. Maar tegelijkertijd zou het inhouden dat per blokje 3 extra bits moeten worden weggeschreven. De verdeling is bijgevolg helemaal niet uniform. Aangezien er heel wat verschillende s i waarden mogelijk zijn nu en dus niet zoals in het CPM-gedeelte een vaste s i waarde. Zo zal de o i waarde ook heel sterk negatieve en heel grote positieve waarden kunnen aannemen. Opnieuw bekomen we hier dus een hoge entropiewaarde en we hebben er dan ook voor gekozen deze o i waarden niet verder te comprimeren De s i -waarden Er zijn hier slechts 32 mogelijke waarden en gebruik makend van de grootte van het blokje kunnen we ook de oorspronkelijke s i waarde kennen. Er zijn met andere woorden maximaal 5 bits nodig om de s i -waarden op te slaan. Maar de waarden liggen wel dicht bij nul aangezien er bij 32x32 blokken slechts 4 mogelijke waarden zijn. We gebruiken bijgevolg de Huffmann-coder om de s i waarden dan ook nog verder te comprimeren, tot iets minder dan 4 bits per symbool. 4.4 Totale bitstroom Door alle stukken achter elkaar weg te schrijven bekomen we één grote bitstroom die de totale videosequentie beschrijft. Eerst worden de gegevens van de CPM-structuur weggeschreven en vervolgens deze van NCIM. Er wordt geen header informatie toegevoegd, de gebruiker moet dus weten hoe groot de oorspronkelijke videosequentie was, wat de resolutie van een beeld was en hoeveel beelden de videosequentie lang was. Voor de CPM-structuur gaan we als volgt te werk: eerst wordt de bitstroom van de Quad- Tree weggeschreven, gevolgd door de bewegingsvectoren, dan de o i waarden van de Y- component, de o i waarden van de U-component en ten slotte de o i waarden van de V- component. De volgorde voor het wegschrijven van de bewegingsvectoren is dezelfde als die voor het wegschrijven van de o i waarden. We lezen de makroblokken van 32 op 32

44 4.4 Totale bitstroom 36 pixels van links naar rechts en van boven naar onder en zoals bij het uitschrijven van de QuadTree structuur dalen we af indien nodig, diepte-eerst. De NCIM-bitstroom is vergelijkbaar met deze van de CPM, we zullen zoals bij CPM eerst de QuadTree en de bewegingsvectoren wegschrijven. Gevolgd door voor iedere component in volgorde Y, U, V eerst alle o i waarden en dan alle s i waarden. Zo bekomen we de bitstroom zoals aangegeven in Figuur 4.7. Wat betekent dat navigatie in deze stroom niet mogelijk is aangezien nergens is meegegeven hoeveel bits de compressie van het volgende beeld inneemt. Dat is immers niet opportuun aangezien het toch niet mogelijk is beeld n te herstellen zonder eerst beeld n-1 te herstellen. Met deze CPM-NCIM techniek is het dus niet mogelijk om binnenin een GOP te navigeren. Figuur 4.7: De totale bitstroom van de hybride structuur CPM/NCIM.

45 IMPLEMENTATIEDETAILS 37 Hoofdstuk 5 Implementatiedetails In dit hoofdstuk worden eerst de programmaspecificaties vermeld, waarna een beschrijving volgt van een aantal details van de implementatie die in vorige hoofdstukken nog niet ten volle aan bod kwamen. 5.1 Programmaspecificaties De encoder kan videosequenties aan van de vorm cif en qcif in YUV 4:2:0 formaat. De grootte van het makroblok bij een qcif is 16 op 16 pixels terwijl dat bij cif 32 op 32 pixels is. Bij beide formaten is de minimum grootte van een rangeblok 4 op 4 voor de Y-component en bijgevolg 2 op 2 pixels voor de U- en V-componenten. De encoder genereert output in de vorm van de bitstroom zoals in het vorige hoofdstuk uitgelegd. Deze bitstroom vormt dan de input voor de decoder die vervolgens een bestand zal genereren in YUV 4:2:0 formaat. Spatiale herschaling is niet mogelijk met deze implementatie maar kan wel bereikt worden mits aanpassing van de videocodec. Het is namelijk eigen aan de CPM dat de reconstructie kan gebeuren op een andere resolutie en de NCIM zou deze resolutie dan zonder problemen verder kunnen gebruiken. Het is bijgevolg mogelijk de videocodec zodanig uit te breiden dat spatiale herschaling mogelijk wordt. 5.2 Bewegingsvectoren Bij het zoeken naar het domeinblok dat de beste benadering biedt voor een rangeblok worden de verschillende bewegingsvectoren doorlopen. De volgorde waarin deze doorlopen

46 5.3 Entropiecoder 38 worden is echter niet optimaal. Er wordt begonnen met de grootste verschuiving naar linksboven en zo verder gezocht tot uiteindelijk de grootste verschuiving naar rechtsonder wordt onderzocht. Wanneer het domeinblok linksboven een even goede benadering is voor het rangeblok als het domeinblok met als bewegingsvector (0,0) dan zal bijgevolg het domeinblok linksboven als beste benadering worden gekozen. Dit zorgt ervoor dat de bewegingsvectoren niet optimaal rond het punt (0,0) verdeeld zullen liggen, meer hierover in het hoofdstuk optimalisaties, zie Entropiecoder Als entropiecoder is er gekozen voor een Huffman-coder die voor iedere te comprimeren sequentie een nieuwe probabiliteitenboom opstelt. Deze boom wordt dan ook volledig meegegeven in de bitstroom zodat de bitstroom gedecodeerd kan worden zonder gebruik te maken van een vastgelegde probabiliteitenboom. 5.4 Beginbeeld voor de CPM Voor de reconstructie van de door de CPM gecodeerde beelden mag men het startbeeld vrij kiezen. Er is gekozen voor een beeld met alle pixelwaarden gelijk aan 128. Op die manier zal de decoder zo snel mogelijk de attractor kunnen vinden. 5.5 Afronding van de o i -waarden Bij de CPM-techniek worden de o i waarden die berekend worden door de decoder op speciale wijze afgerond. Omdat de CPM-techniek een aantal iteraties nodig heeft om convergent te zijn zouden we gebruik kunnen maken van een tijdelijk beeld dat geen gehele getallen onthoudt als pixelwaarden maar wel floating point-getallen om op die manier geen verlies aan precisie te hebben. Een nadeel hiervan is dat deze beelden meer geheugen vereisen, maar ook dat de convergentie vrij traag verloopt. Stel we hebben vier opeenvolgende beelden waarin alle pixels oorspronkelijk de waarde 124 hadden. Dan zou de encoder de waarde berekenen voor de o i -waarde van ieder blok. De decoder die de sequentie probeert te reconstrueren begint met beelden waarin alle pixels de waarde 255 hebben. Na het toepassen van de formule voor het decoderen bekomen we dan na één enkele iteratie wat

47 5.6 Y-component 39 al een betere benadering is. Er zijn 53 iteraties nodig om tot de waarde te komen, dewelke dan kan afgerond worden tot de correcte waarde, de attractor. De CPM-techniek zou dus (53/4=) 14 keer de vier beelden moeten herstellen. Werken we echter met gehele getallen en ronden we af naar de waarde zo ver mogelijk verwijderd van de oorspronkelijke waarde dan bekomen we na één iteratie 241 in de plaats van en hebben we slechts 31 iteraties nodig om de waarde 124 te bereiken. Na deze divergente afrondingen volgt nog één laatste afronding stap dewelke nog één keer de vier beelden decodeert en dan afrondt naar het dichtst bijliggende gehele getal. De CPM-methode is op die manier sneller omdat er minder iteraties nodig zijn om de attractor te bepalen. 5.6 Y-component Zoals reeds eerder vermeld is de Y-component in de YUV-kleurenruimte de component waaraan het menselijke oog het meest gevoelig is. Daarom is er voor gekozen deze component zo goed mogelijk te benaderen op basis van het best passende domeinblok, de overige componenten zijn dan verplicht dezelfde bewegingvector en QuadTree te gebruiken. Voor de benadering van een U- of V-component kunnen we bijgevolg enkel nog de o i en bij NCIM ook de s i waarde instellen. Als de Y-component in een makroblok niet veel veranderd en deze dus een goede benadering heeft gevonden in het voorgaande beeld dan heeft dat tot gevolg dat de andere componenten, nog enkel kunnen gebruik maken van de twee waarden, o i en s i, om het makroblok te beschrijven. Als er dus weinig of geen verandering is in de Y-component maar wel in de U-component bijvoorbeeld dan kan het moeilijk zijn voor de encoder om het blok nog goed genoeg te benaderen. Deze fout in de benadering kan je duidelijk zien in de laatste beelden van sequentie children als deze is gecodeerd met kwaliteitsparameter 9, het desbetreffende originele beeld staat links in Figuur 5.1. We bekomen dan, zoals afgebeeld in de rechtse tekening in Figuur 5.1, een slechte reconstructie van de letter W, dewelke onderaan rechts in deze tekening te zien is in het rood. De reconstructie van de witte letters lukt omdat deze de Y-component veranderen wanneer ze van rechts naar links in beeld komen. Ook de reconstructie van de groene letters lukt nog omdat deze letters boven een achtergrond verschijnen die niet vlak is, zodat ook hier de Y-component wijzigt. Maar als de rode letter in beeld komt dan is alles er rond vrij vlak en verandert de Y-component niet zo veel in dat gebied. Als we de zwart-wit versie van dit beeld beschouwen en we vergelijken het origineel (links afgebeeld in Figuur 5.2, met de reconstructie na coderen (rechts afgebeeld in Figuur 5.2), dan zien we dat in het gebied waarin de rode letter W voorkomt de Y-component niet veel veranderd in de originele

48 5.6 Y-component 40 videosequentie. We kunnen ook zien dat de reconstructie ervoor heeft gekozen de kleine wijzigingen in de Y-component vlak te maken waaruit blijkt dat de rangeblokken groot zijn gebleven en geen verdere opsplitsing is gedaan van deze blokken, wat dan ook een slechte benadering van de letter W tot gevolg heeft. Figuur 5.1: Het 29ste beeld uit de video children in kleur. Links het origineel en rechts de reconstructie. Figuur 5.2: Het 29ste beeld uit de video children in zwart-wit. Links het origineel en rechts de reconstructie. Het gebruik van een gemeenschappelijke bewegingsvector en QuadTree voor de drie componenten kan dus wel bepaalde fouten met zich meebrengen.

49 5.7 Bepaling verschil tussen o i -waarden Bepaling verschil tussen o i -waarden Bij CPM wordt voor het eerste beeld steeds de o i -waarde zelf weggeschreven terwijl voor de daaropvolgende beelden slechts een verschil met de o i -waarde uit het voorgaande beeld wordt weggeschreven. Aangezien ieder beeld een eigen QuadTree heeft is het niet altijd mogelijk om in het vorige beeld een blok op dezelfde plaats en met dezelfde grootte te vinden als het blok waarvoor de verschil o i -waarde moet bepaald worden. Laten we voor de eenvoud het blok waarvoor de verschil o i waarde moet bepaald worden het X-blok noemen. We gebruiken het volgende algoritme: Zoek in het voorgaande beeld het kleinst mogelijke blok dat het X-blok helemaal overlapt. Is dit blok groter dan het X-blok dan kunnen we deze o i -waarde gebruiken. Is het van dezelfde grootte en is het blok niet opgesplitst dan kunnen we opnieuw deze waarde gebruiken. Is het wel opgesplitst dan berekenen we de gemiddelde waarde tussen de vier deelblokken en gebruiken we deze waarde om de o i -waarde van het blok te benaderen.

50 VERGELIJKING MET MPEG-2 42 Hoofdstuk 6 Vergelijking met MPEG Peak signal-to-noise ratio (PSNR) Aangezien de videocodec verlieshebbend is moeten we een manier hebben om te meten hoeveel verlies de herstelde videosequentie heeft. Hiervoor zullen we gebruik maken van de PSNR. Deze is, op basis van de MSE, als volgt gedefinieerd: PSNR = 10 log 10 (MAXI 2/MSE) db, waarbij MAX I de maximum pixel waarde is in het beeld (in dit geval dus = 255. Kwaliteit is echter subjectief, zo kunnen twee beelden eenzelfde PSNR waarde hebben maar toch een verschillende subjectieve kwaliteit. De PSNR laat ons toe om op objectieve wijze aan de kwaliteit van het herstelde beeld een waarde toe te kennen. Hoe hoger de PSNRwaarde hoe beter de kwaliteit, typische waarden liggen tussen de 30 db en 40 db. Op deze manier is het mogelijk de kwaliteit van verschillende reconstructies te vergelijken. Deze PSNR metriek wordt dan ook vaak gebruikt bij het vergelijken van videocodecs. 6.2 Optimale kwaliteitsparameter Er is slechts één parameter om de kwaliteit te kunnen regelen. Het is een waarde tussen 1 en Deze waarde wordt gebruikt op twee plaatsen: Bij het zoeken naar de optimale benadering van een rangeblok zal een minder goede benadering aanvaardt worden als de MSE waarde van deze benadering kleiner is de kwaliteitsparameter gedeeld door 4. Op die manier kan men met de kwaliteitsparameter deze grenswaarde regelen en bijgevolg de snelheid van het algoritme opvoeren tegen een verlies aan kwaliteit.

51 6.3 Referentiecodec 43 Deze parameter zal ook bepalen of de optimale benadering of een tenminste een benadering die voldoet aan de grenswaarde ook goed genoeg is. Of er al dan niet een verdere opsplitsing van het rangeblok moet komen, indien natuurlijk het rangeblok nog groter is dan 4 op 4 pixels. Deze grenswaarden hangen af van de grootte van het rangeblok, hoe groter het blok hoe groter de fout mag zijn. Zo zal voor een 32 op 32 pixels groot rangeblok de MSE waarde van de beste benadering kleiner moeten zijn dan de kwaliteitsparameter * 4. Voor een blok van 16 op 16 pixels moet de MSE kleiner zijn dan kwaliteitsparameter * 2. Tenslotte moet voor een blok van 8 bij 8 pixels de MSE kleiner zijn dan kwaliteitsparameter. De keuze van deze parameter heeft een invloed op beide CPM- en NCIM-technieken. We bespreken hier kort de invloed van de kwaliteitsparameter op de grootte van de bitstroom van CPM en op de PSNR-waarde van de bijhorende gedecodeerde video. Zoals uit Figuur 6.1 blijkt, daalt de grootte van de bitstroom heel snel bij lage kwaliteitsparameters, eenmaal de parameter groter wordt dan 10 is de daling heel wat minder groot. Terwijl de PSNR-waarde zo goed als lineair daalt. Als we de kwaliteit verder laten dalen dan bekomen we grote blokartefacten, vooral in de vlakke gebieden. Terwijl in gebieden met veel details er wel een verdere opsplitsing is van de QuadTree en bijgevolg de kwaliteit daar iets beter blijft. Bij NCIM bekomen we vergelijkbare resultaten. Bijgevolg werd er voor gekozen de kwaliteitsparameters aan 9 gelijk te stellen omdat er bij groter kwaliteitsparameters grote artefacten kunnen ontstaan en omdat de PSNR-waarde voor deze kwaliteitsparameter nog niet veel is gedaald terwijl de bitstroom al heel wat korter is geworden. Vanaf nu zullen we bij het coderen van de verschillende videosequenties steeds gebruik maken van de waarde 9 als kwaliteitsparameter. 6.3 Referentiecodec Omdat de videocodec nog niet geoptimaliseerd is hebben we als refentiecodec gekozen voor de MPEG-2 Video/H.262, hierna zullen we hier naar refereren als de MPEG-codec. We hebben gebruik gemaakt van een implementatie van de MPEG Software Simulation Group. De gebruikte parameters voor deze codec kan je terug vinden in Bijlage A.2. Zo is er één parameter niet ingevuld bij de encoder, deze parameter die instelt hoeveel bits de coder maximaal mag gebruiken om een videosequentie van één seconde voor te stellen.

52 6.4 Vgl resultaten 44 Figuur 6.1: Bitstroom grootte in vergelijking met de kwaliteitsparameter toegepast op de video ice. Eerst wordt de video gecomprimeerd met de fractaalvideocodec waarna dezelfde video met de MPEG-codec wordt gecomprimeerd met de parameter zodanig ingesteld dat dezelfde grootte van bitstroom wordt bekomen. Op die manier kunnen we beide videocodecs het best met elkaar vergelijken. 6.4 Vgl resultaten We hebben gekozen om de vergelijking te doen aan de hand van vijf verschillende videosequenties: children, ice, news, row en stefan. Eerst kijken we hoe goed onze eigen videocodec de videosequentie ice decodeert. Zoals in Figuur 6.2 te zien is zijn de PSNR waarden van de reconstructie van ice duidelijk lager in de eerste vier beelden, er is dus een lagere kwaliteit bekomen door de CPM methode dan bij de NCIM methode. Laten we nu de bekomen PSNR-waarden eens vergelijken met deze van de MPEG-2 codec. We hebben hiervoor deze encoder verplicht om het originele videobestand te comprimeren naar eenzelfde grootte als de grootte bekomen door de thesiscodec. Daardoor kunnen we nu

53 6.4 Vgl resultaten 45 Figuur 6.2: De PSNR waarde horend bij de video ice. de twee codecs vergelijken op basis van even grote compressiegraad. Zoals duidelijk blijkt uit Figuur 6.3 zijn de PSNR-waarden, van de Y-component, bekomen door de thesiscodec heel wat minder goed dan deze bekomen door de MPEG-2 codec. De thesiscodec bekomt een gemiddelde PSNR van db voor deze sequentie. Ook de andere sequenties zijn vergeleken. In Tabel 6.1 kan je de verschillende, gemiddelde PSNR-waarden zien van de Y-component voor de thesiscodec en de MPEG-2 codec. Hieruit blijkt dat de thesiscodec bij ieder viedeosequentie een heel stuk minder goed presteert dan de MPEG-2 codec. Tabel 6.1: Vergelijking gemiddelde PSNR waarde van de Y-component Videosequentie PSNR MPEG-2 PSNR thesiscodec children 40.45dB 29.04dB ice 40.63dB 31.80dB news 42.85dB 27.18dB row 40.41dB 29.91dB stefan 37.93dB 26.95dB

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

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead 7.1 Exploring Combinations of Ten Look at these cubes. 2. Color some of the cubes to make three parts. Then write a matching sentence. 10 What addition sentence matches the picture? How else could you

Nadere informatie

04/11/2013. Sluitersnelheid: 1/50 sec = 0.02 sec. Frameduur= 2 x sluitersnelheid= 2/50 = 1/25 = 0.04 sec. Framerate= 1/0.

04/11/2013. Sluitersnelheid: 1/50 sec = 0.02 sec. Frameduur= 2 x sluitersnelheid= 2/50 = 1/25 = 0.04 sec. Framerate= 1/0. Onderwerpen: Scherpstelling - Focusering Sluitersnelheid en framerate Sluitersnelheid en belichting Driedimensionale Arthrokinematische Mobilisatie Cursus Klinische Video/Foto-Analyse Avond 3: Scherpte

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010 FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Toets Inleiding Kansrekening 1 8 februari 2010 Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Analyse 6 januari 203, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

Classification of triangles

Classification of triangles Classification of triangles A triangle is a geometrical shape that is formed when 3 non-collinear points are joined. The joining line segments are the sides of the triangle. The angles in between the sides

Nadere informatie

Add the standing fingers to get the tens and multiply the closed fingers to get the units.

Add the standing fingers to get the tens and multiply the closed fingers to get the units. Digit work Here's a useful system of finger reckoning from the Middle Ages. To multiply $6 \times 9$, hold up one finger to represent the difference between the five fingers on that hand and the first

Nadere informatie

Teardrop readout gradient waveform design. Ting Ting Ren

Teardrop readout gradient waveform design. Ting Ting Ren Teardrop readout gradient waveform design Ting Ting Ren Overview MRI Background Teardrop Model Discussion Future work MRI Background: Classical Description of MRI Spins: MR relevant nuclei, like 1 H. Main

Nadere informatie

ALGORITMIEK: answers exercise class 7

ALGORITMIEK: answers exercise class 7 Problem 1. See slides 2 4 of lecture 8. Problem 2. See slides 4 6 of lecture 8. ALGORITMIEK: answers exercise class 7 Problem 5. a. Als we twee negatieve (< 0) getallen bij elkaar optellen is het antwoord

Nadere informatie

My Inspiration I got my inspiration from a lamp that I already had made 2 years ago. The lamp is the you can see on the right.

My Inspiration I got my inspiration from a lamp that I already had made 2 years ago. The lamp is the you can see on the right. Mijn Inspiratie Ik kreeg het idee om een variant te maken van een lamp die ik al eerder had gemaakt. Bij de lamp die in de onderstaande foto s is afgebeeld kun je het licht dimmen door de lamellen open

Nadere informatie

COGNITIEVE DISSONANTIE EN ROKERS COGNITIVE DISSONANCE AND SMOKERS

COGNITIEVE DISSONANTIE EN ROKERS COGNITIVE DISSONANCE AND SMOKERS COGNITIEVE DISSONANTIE EN ROKERS Gezondheidsgedrag als compensatie voor de schadelijke gevolgen van roken COGNITIVE DISSONANCE AND SMOKERS Health behaviour as compensation for the harmful effects of smoking

Nadere informatie

Ontpopping. ORGACOM Thuis in het Museum

Ontpopping. ORGACOM Thuis in het Museum Ontpopping Veel deelnemende bezoekers zijn dit jaar nog maar één keer in het Van Abbemuseum geweest. De vragenlijst van deze mensen hangt Orgacom in een honingraatpatroon. Bezoekers die vaker komen worden

Nadere informatie

Lichamelijke factoren als voorspeller voor psychisch. en lichamelijk herstel bij anorexia nervosa. Physical factors as predictors of psychological and

Lichamelijke factoren als voorspeller voor psychisch. en lichamelijk herstel bij anorexia nervosa. Physical factors as predictors of psychological and Lichamelijke factoren als voorspeller voor psychisch en lichamelijk herstel bij anorexia nervosa Physical factors as predictors of psychological and physical recovery of anorexia nervosa Liesbeth Libbers

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Analyse 8 december 203, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als jeeen onderdeel

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours.

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours. TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Examination 2DL04 Friday 16 november 2007, 14.00-17.00 hours. De uitwerkingen van de opgaven dienen duidelijk geformuleerd en overzichtelijk

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

MyDHL+ Van Non-Corporate naar Corporate

MyDHL+ Van Non-Corporate naar Corporate MyDHL+ Van Non-Corporate naar Corporate Van Non-Corporate naar Corporate In MyDHL+ is het mogelijk om meerdere gebruikers aan uw set-up toe te voegen. Wanneer er bijvoorbeeld meerdere collega s van dezelfde

Nadere informatie

i(i + 1) = xy + y = x + 1, y(1) = 2.

i(i + 1) = xy + y = x + 1, y(1) = 2. Kenmerk : Leibniz/toetsen/Re-Exam-Math A + B-45 Course : Mathematics A + B (Leibniz) Date : November 7, 204 Time : 45 645 hrs Motivate all your answers The use of electronic devices is not allowed [4 pt]

Nadere informatie

(1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs. (2) Ons gezelschap is er om kunsteducatie te verbeteren

(1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs. (2) Ons gezelschap is er om kunsteducatie te verbeteren (1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs (2) Ons gezelschap is er om kunsteducatie te verbeteren (3) Ons gezelschap helpt gemeenschappen te vormen en te binden (4) De producties

Nadere informatie

28/10/2012. Onderwerpen: Scherpstelling - Focusering Sluitersnelheid en framerate. Sluitersnelheid en belichting

28/10/2012. Onderwerpen: Scherpstelling - Focusering Sluitersnelheid en framerate. Sluitersnelheid en belichting 8/0/0 Onderwerpen: Sluitersnelheid en framerate Sluitersnelheid en belichting Driedimensionale Arthrokinematische Mobilisatie Cursus Klinische Video/Foto-Analyse Avond 3: Scherpte en Scherptediepte www.damcursus.nl

Nadere informatie

Data Handling Ron van Lammeren - Wageningen UR

Data Handling Ron van Lammeren - Wageningen UR Data Handling 1 2010-2011 Ron van Lammeren - Wageningen UR Can I answer my scientific questions? Geo-data cycle Data handling / introduction classes of data handling data action models (ISAC) Queries (data

Nadere informatie

Esther Lee-Varisco Matt Zhang

Esther Lee-Varisco Matt Zhang Esther Lee-Varisco Matt Zhang Want to build a wine cellar Surface temperature varies daily, seasonally, and geologically Need reasonable depth to build the cellar for lessened temperature variations Building

Nadere informatie

General info on using shopping carts with Ingenico epayments

General info on using shopping carts with Ingenico epayments Inhoudsopgave 1. Disclaimer 2. What is a PSPID? 3. What is an API user? How is it different from other users? 4. What is an operation code? And should I choose "Authorisation" or "Sale"? 5. What is an

Nadere informatie

Verschillen in het Gebruik van Geheugenstrategieën en Leerstijlen. Differences in the Use of Memory Strategies and Learning Styles

Verschillen in het Gebruik van Geheugenstrategieën en Leerstijlen. Differences in the Use of Memory Strategies and Learning Styles Verschillen in het Gebruik van Geheugenstrategieën en Leerstijlen tussen Leeftijdsgroepen Differences in the Use of Memory Strategies and Learning Styles between Age Groups Rik Hazeu Eerste begeleider:

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Bewijzen en Technieken 1 7 januari 211, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe.

Nadere informatie

Introductie in flowcharts

Introductie in flowcharts Introductie in flowcharts Flow Charts Een flow chart kan gebruikt worden om: Processen definieren en analyseren. Een beeld vormen van een proces voor analyse, discussie of communicatie. Het definieren,

Nadere informatie

z x 1 x 2 x 3 x 4 s 1 s 2 s 3 rij rij rij rij

z x 1 x 2 x 3 x 4 s 1 s 2 s 3 rij rij rij rij ENGLISH VERSION SEE PAGE 3 Tentamen Lineaire Optimalisering, 0 januari 0, tijdsduur 3 uur. Het gebruik van een eenvoudige rekenmachine is toegestaan. Geef bij elk antwoord een duidelijke toelichting. Als

Nadere informatie

Invloed van het aantal kinderen op de seksdrive en relatievoorkeur

Invloed van het aantal kinderen op de seksdrive en relatievoorkeur Invloed van het aantal kinderen op de seksdrive en relatievoorkeur M. Zander MSc. Eerste begeleider: Tweede begeleider: dr. W. Waterink drs. J. Eshuis Oktober 2014 Faculteit Psychologie en Onderwijswetenschappen

Nadere informatie

Preschool Kindergarten

Preschool Kindergarten Preschool Kindergarten Objectives Students will recognize the values of numerals 1 to 10. Students will use objects to solve addition problems with sums from 1 to 10. Materials Needed Large number cards

Nadere informatie

The genesis of the game is unclear. Possibly, dominoes originates from China and the stones were brought here by Marco Polo, but this is uncertain.

The genesis of the game is unclear. Possibly, dominoes originates from China and the stones were brought here by Marco Polo, but this is uncertain. Domino tiles Dominoes is a game played with rectangular domino 'tiles'. Today the tiles are often made of plastic or wood, but in the past, they were made of real stone or ivory. They have a rectangle

Nadere informatie

The colour of a pixel in a bit map picture can be presented in different ways. For this assignment, we distinguish two categories:

The colour of a pixel in a bit map picture can be presented in different ways. For this assignment, we distinguish two categories: Bitmap conversion A bit map picture is exactly what the name makes one suspect: a sequence of bits (0 or 1) that together represent a digital photo. The picture consists of a matrix (rectangle grid) of

Nadere informatie

After that, the digits are written after each other: first the row numbers, followed by the column numbers.

After that, the digits are written after each other: first the row numbers, followed by the column numbers. Bifid cipher The bifid cipher is one of the classical cipher techniques that can also easily be executed by hand. The technique was invented around 1901 by amateur cryptographer Felix Delastelle. The cipher

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 7 februari 2011

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 7 februari 2011 FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Toets Inleiding Kansrekening 1 7 februari 2011 Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

Basic operations Implementation options

Basic operations Implementation options Priority Queues Heaps Heapsort Student questions EditorTrees WA 6 File Compression Graphs Hashing Anything else Written Assignments 7 and 8 have been updated for this term. Each of them is smaller than

Nadere informatie

Het JPEG compressie algoritme, IS

Het JPEG compressie algoritme, IS Het JPEG compressie algoritme, IS 10918-1 Een overzicht van het JPEG compressie algoritme door Mathias Verboven. Inhoudsopgave Inleiding.... 2 Stap 1: inlezen bronbestand.... 3 Stap 2: Veranderen van kleurruimte....

Nadere informatie

Calculator spelling. Assignment

Calculator spelling. Assignment Calculator spelling A 7-segmentdisplay is used to represent digits (and sometimes also letters). If a screen is held upside down by coincide, the digits may look like letters from the alphabet. This finding

Nadere informatie

Running Head: INVLOED VAN ASE-DETERMINANTEN OP INTENTIE CONTACT 1

Running Head: INVLOED VAN ASE-DETERMINANTEN OP INTENTIE CONTACT 1 Running Head: INVLOED VAN ASE-DETERMINANTEN OP INTENTIE CONTACT 1 Relatie tussen Attitude, Sociale Invloed en Self-efficacy en Intentie tot Contact tussen Ouders en Leerkrachten bij Signalen van Pesten

Nadere informatie

Beïnvloedt Gentle Teaching Vaardigheden van Begeleiders en Companionship en Angst bij Verstandelijk Beperkte Cliënten?

Beïnvloedt Gentle Teaching Vaardigheden van Begeleiders en Companionship en Angst bij Verstandelijk Beperkte Cliënten? Beïnvloedt Gentle Teaching Vaardigheden van Begeleiders en Companionship en Angst bij Verstandelijk Beperkte Cliënten? Does Gentle Teaching have Effect on Skills of Caregivers and Companionship and Anxiety

Nadere informatie

Lijnenspel. Remco van Groesen ( ) & Ellen Houbiers ( )

Lijnenspel. Remco van Groesen ( ) & Ellen Houbiers ( ) Lijnenspel Remco van Groesen (0769631) & Ellen Houbiers (0775493) Technische Universiteit Eindhoven Opdrachtgever: Benne de Weger Begeleider: Cor Hurkens 18 januari 2013 1 Inhoudsopgave 1 Inleiding 3 2

Nadere informatie

Screen Design. Deliverable 3 - Visual Design. Pepijn Gieles 0877217 19-12-2014. Docent: Jasper Schelling

Screen Design. Deliverable 3 - Visual Design. Pepijn Gieles 0877217 19-12-2014. Docent: Jasper Schelling Screen Design Deliverable 3 - Visual Design Pepijn Gieles 0877217 19-12-2014 Docent: Jasper Schelling Hulp bij het inloggen Inloggen Particulier Personal Banking Private Banking Zakelijk Zoeken in Particulier

Nadere informatie

Global TV Canada s Pulse 2011

Global TV Canada s Pulse 2011 Global TV Canada s Pulse 2011 Winnipeg Nobody s Unpredictable Methodology These are the findings of an Ipsos Reid poll conducted between August 26 to September 1, 2011 on behalf of Global Television. For

Nadere informatie

!!!! Wild!Peacock!Omslagdoek!! Vertaling!door!Eerlijke!Wol.!! Het!garen!voor!dit!patroon!is!te!verkrijgen!op! Benodigdheden:!!

!!!! Wild!Peacock!Omslagdoek!! Vertaling!door!Eerlijke!Wol.!! Het!garen!voor!dit!patroon!is!te!verkrijgen!op!  Benodigdheden:!! WildPeacockOmslagdoek VertalingdoorEerlijkeWol. Hetgarenvoorditpatroonisteverkrijgenopwww.eerlijkewol.nl Benodigdheden: 4strengenWildPeacockRecycledSilkYarn rondbreinaaldnr8(jekuntnatuurlijkookgewonebreinaaldengebruiken,maar

Nadere informatie

Risico s van Technologisch Succes in digitale transformatie S T R A T E G I C A D V I S O R

Risico s van Technologisch Succes in digitale transformatie S T R A T E G I C A D V I S O R Risico s van Technologisch Succes in digitale transformatie 2e Risk Event 2019 11 april 2019 The S T R A T E G I C A D V I S O R Ymanagement school of the autonomous University of Antwerp 2 Prof. dr. Hans

Nadere informatie

De Relatie tussen de Fysieke Omgeving en het Beweeggedrag van Kinderen gebruik. makend van GPS- en Versnellingsmeterdata

De Relatie tussen de Fysieke Omgeving en het Beweeggedrag van Kinderen gebruik. makend van GPS- en Versnellingsmeterdata De Relatie tussen de Fysieke Omgeving en het Beweeggedrag van Kinderen gebruik makend van GPS- en Versnellingsmeterdata The relationship Between the Physical Environment and Physical Activity in Children

Nadere informatie

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM Read Online and Download Ebook ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM DOWNLOAD EBOOK : ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK STAFLEU

Nadere informatie

VOORSTEL TOT STATUTENWIJZIGING UNIQURE NV. Voorgesteld wordt om de artikelen 7.7.1, 8.6.1, en te wijzigen als volgt: Toelichting:

VOORSTEL TOT STATUTENWIJZIGING UNIQURE NV. Voorgesteld wordt om de artikelen 7.7.1, 8.6.1, en te wijzigen als volgt: Toelichting: VOORSTEL TOT STATUTENWIJZIGING UNIQURE NV Voorgesteld wordt om de artikelen 7.7.1, 8.6.1, 9.1.2 en 9.1.3 te wijzigen als volgt: Huidige tekst: 7.7.1. Het Bestuur, zomede twee (2) gezamenlijk handelende

Nadere informatie

Academisch schrijven Inleiding

Academisch schrijven Inleiding - In this essay/paper/thesis I shall examine/investigate/evaluate/analyze Algemene inleiding van het werkstuk In this essay/paper/thesis I shall examine/investigate/evaluate/analyze To answer this question,

Nadere informatie

Karen J. Rosier - Brattinga. Eerste begeleider: dr. Arjan Bos Tweede begeleider: dr. Ellin Simon

Karen J. Rosier - Brattinga. Eerste begeleider: dr. Arjan Bos Tweede begeleider: dr. Ellin Simon Zelfwaardering en Angst bij Kinderen: Zijn Globale en Contingente Zelfwaardering Aanvullende Voorspellers van Angst bovenop Extraversie, Neuroticisme en Gedragsinhibitie? Self-Esteem and Fear or Anxiety

Nadere informatie

De Rol van Zelfregulatie, Motivatie en Eigen Effectiviteitsverwachting op het Volhouden

De Rol van Zelfregulatie, Motivatie en Eigen Effectiviteitsverwachting op het Volhouden De Rol van Zelfregulatie, Motivatie en Eigen Effectiviteitsverwachting op het Volhouden van Sporten en de Invloed van Egodepletie, Gewoonte en Geslacht The Role of Selfregulation, Motivation and Self-efficacy

Nadere informatie

Het Effect van Verschil in Sociale Invloed van Ouders en Vrienden op het Alcoholgebruik van Adolescenten.

Het Effect van Verschil in Sociale Invloed van Ouders en Vrienden op het Alcoholgebruik van Adolescenten. Het Effect van Verschil in Sociale Invloed van Ouders en Vrienden op het Alcoholgebruik van Adolescenten. The Effect of Difference in Peer and Parent Social Influences on Adolescent Alcohol Use. Nadine

Nadere informatie

Het is geen open boek tentamen. Wel mag gebruik gemaakt worden van een A4- tje met eigen aantekeningen.

Het is geen open boek tentamen. Wel mag gebruik gemaakt worden van een A4- tje met eigen aantekeningen. Examen ET1205-D1 Elektronische Circuits deel 1, 5 April 2011, 9-12 uur Het is geen open boek tentamen. Wel mag gebruik gemaakt worden van een A4- tje met eigen aantekeningen. Indien, bij het multiple choice

Nadere informatie

De Relatie tussen Voorschoolse Vorming en de Ontwikkeling van. Kinderen

De Relatie tussen Voorschoolse Vorming en de Ontwikkeling van. Kinderen Voorschoolse vorming en de ontwikkeling van kinderen 1 De Relatie tussen Voorschoolse Vorming en de Ontwikkeling van Kinderen The Relationship between Early Child Care, Preschool Education and Child Development

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 22 februari 2013

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 22 februari 2013 FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Toets Inleiding Kansrekening 1 22 februari 2013 Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

Meetkunde en Lineaire Algebra

Meetkunde en Lineaire Algebra Hoofdstuk 1 Meetkunde en Lineaire Algebra Vraag 1.1 Het trapoppervlak is een afwikkelbaar oppervlak met oneindig veel singuliere punten. Vraag 1.2 Het schroefoppervlak is een afwikkelbaar oppervlak met

Nadere informatie

Gegevens. Doelstellingen Elektronica. verwerven. opslaan. bewerken doorsturen. weergeven. Analoog signaal : snelheidsmeting. KHLim - dep.

Gegevens. Doelstellingen Elektronica. verwerven. opslaan. bewerken doorsturen. weergeven. Analoog signaal : snelheidsmeting. KHLim - dep. Gegevens verwerven Doelstellingen Elektronica opslaan» elektrische vorm» magnetische vorm» mechanische vorm bewerken doorsturen» elektrisch (temperatuur, druk, geluid, beeld, )» optisch» elektromagnetische

Nadere informatie

Chromosomal crossover

Chromosomal crossover Chromosomal crossover As one of the last steps of genetic recombination two homologous chromosomes can exchange genetic material during meiosis in a process that is referred to as synapsis. Because of

Nadere informatie

Risk & Requirements Based Testing

Risk & Requirements Based Testing Risk & Requirements Based Testing Tycho Schmidt PreSales Consultant, HP 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Agenda Introductie

Nadere informatie

S e v e n P h o t o s f o r O A S E. K r i j n d e K o n i n g

S e v e n P h o t o s f o r O A S E. K r i j n d e K o n i n g S e v e n P h o t o s f o r O A S E K r i j n d e K o n i n g Even with the most fundamental of truths, we can have big questions. And especially truths that at first sight are concrete, tangible and proven

Nadere informatie

University of Groningen

University of Groningen University of Groningen De ontwikkeling van prikkelverwerking bij mensen met een Autisme Spectrum Stoornis en de invloed van hulp en begeleiding gedurende het leven. Fortuin, Marret; Landsman-Dijkstra,

Nadere informatie

Ae Table 1: Aircraft data. In horizontal steady flight, the equations of motion are L = W and T = D.

Ae Table 1: Aircraft data. In horizontal steady flight, the equations of motion are L = W and T = D. English Question 1 Flight mechanics (3 points) A subsonic jet aircraft is flying at sea level in the International Standard Atmosphere ( = 1.5 kg/m 3 ). It is assumed that thrust is independent of the

Nadere informatie

Quality requirements concerning the packaging of oak lumber of Houthandel Wijers vof (09.09.14)

Quality requirements concerning the packaging of oak lumber of Houthandel Wijers vof (09.09.14) Quality requirements concerning the packaging of oak lumber of (09.09.14) Content: 1. Requirements on sticks 2. Requirements on placing sticks 3. Requirements on construction pallets 4. Stick length and

Nadere informatie

Verklaring van het beweeggedrag van ouderen door determinanten van. The explanation of the physical activity of elderly by determinants of

Verklaring van het beweeggedrag van ouderen door determinanten van. The explanation of the physical activity of elderly by determinants of Verklaring van het beweeggedrag van ouderen door determinanten van het I-change Model The explanation of the physical activity of elderly by determinants of the I-change Model Hilbrand Kuit Eerste begeleider:

Nadere informatie

De Relatie Tussen de Gehanteerde Copingstijl en Pesten op het Werk. The Relation Between the Used Coping Style and Bullying at Work.

De Relatie Tussen de Gehanteerde Copingstijl en Pesten op het Werk. The Relation Between the Used Coping Style and Bullying at Work. De Relatie Tussen de Gehanteerde Copingstijl en Pesten op het Werk The Relation Between the Used Coping Style and Bullying at Work Merijn Daerden Studentnummer: 850225144 Werkstuk: Empirisch afstudeeronderzoek:

Nadere informatie

Adam Marciniec, Grzegorz Budzik Zaborniak

Adam Marciniec, Grzegorz Budzik Zaborniak Journal of KONES Powertrain and Transport, Vol. 21, No. 3 2014 THE DETERMINATION OF ACCURACY OF THE DEMONSTRATOR OF AERONAUTIC BEVEL GEARBOX, ACCOMPLISHED BY SELECTED RAPID PROTOTYPING TECHNIQUES USING

Nadere informatie

8+ 60 MIN Alleen te spelen in combinatie met het RIFUGIO basisspel. Only to be played in combination with the RIFUGIO basicgame.

8+ 60 MIN Alleen te spelen in combinatie met het RIFUGIO basisspel. Only to be played in combination with the RIFUGIO basicgame. 8+ 60 MIN. 2-5 Alleen te spelen in combinatie met het RIFUGIO basisspel. Only to be played in combination with the RIFUGIO basicgame. HELICOPTER SPEL VOORBEREIDING: Doe alles precies hetzelfde als bij

Nadere informatie

CHROMA STANDAARDREEKS

CHROMA STANDAARDREEKS CHROMA STANDAARDREEKS Chroma-onderzoeken Een chroma geeft een beeld over de kwaliteit van bijvoorbeeld een bodem of compost. Een chroma bestaat uit 4 zones. Uit elke zone is een bepaald kwaliteitsaspect

Nadere informatie

Eye Feature Detection Towards Automatic Strabismus Screening

Eye Feature Detection Towards Automatic Strabismus Screening Eye Feature Detection Towards Automatic Strabismus Screening Ken Allen, Khanh Nguyen Gettysburg College What is strabismus? Eye defect that causes eyes to look in two different directions If left untreated,

Nadere informatie

AVCHD (*) : alweer een nieuw video formaat!

AVCHD (*) : alweer een nieuw video formaat! HAF Ledenavond AVCHD (*) : alweer een nieuw video formaat Marc Krier (*): Audio Video Coding High Definition (Wikipedia) 1 maart 2010 HAF 1 Inhoud 1. Evolutie van de informatie dichtheid 2. Beheer van

Nadere informatie

Geert Mul (Nederlandse tekst onderaan de pagina)

Geert Mul (Nederlandse tekst onderaan de pagina) NATUREALLY Commissioned work for the hospital of Enschede (MST) 2016 Transparent print and coloured backlight. 450 x 800 cm, Geert Mul 2016 (Nederlandse tekst onderaan de pagina) The work of art called

Nadere informatie

Hertentamen 8D040 - Basis beeldverwerking

Hertentamen 8D040 - Basis beeldverwerking Hertentamen 8D040 - Basis beeldverwerking 6 augustus 203, 4:00-7:00 Opmerkingen: Maak elke opgave op een apart vel. Antwoord op vraag 4 mag gewoon in het Nederlands. Een gewone rekenmachine is toegestaan.

Nadere informatie

Resistance welding (RW)

Resistance welding (RW) Resistance welding (RW) Heat required for welding is produced by mean of the electrical resistance between the two members to be joined Major advantages, such as not requiring consumable electrodes, shielding

Nadere informatie

Summary 124

Summary 124 Summary Summary 124 Summary Summary Corporate social responsibility and current legislation encourage the employment of people with disabilities in inclusive organizations. However, people with disabilities

Nadere informatie

Bin packing and scheduling

Bin packing and scheduling Sanders/van Stee: Approximations- und Online-Algorithmen 1 Bin packing and scheduling Overview Bin packing: problem definition Simple 2-approximation (Next Fit) Better than 3/2 is not possible Asymptotic

Nadere informatie

de Rol van Persoonlijkheid Eating: the Role of Personality

de Rol van Persoonlijkheid Eating: the Role of Personality De Relatie tussen Dagelijkse Stress en Emotioneel Eten: de Rol van Persoonlijkheid The Relationship between Daily Stress and Emotional Eating: the Role of Personality Arlette Nierich Open Universiteit

Nadere informatie

Four-card problem. Input

Four-card problem. Input Four-card problem The four-card problem (also known as the Wason selection task) is a logic puzzle devised by Peter Cathcart Wason in 1966. It is one of the most famous tasks in the study of deductive

Nadere informatie

Genetic code. Assignment

Genetic code. Assignment Genetic code The genetic code consists of a number of lines that determine how living cells translate the information coded in genetic material (DNA or RNA sequences) to proteins (amino acid sequences).

Nadere informatie

01/ M-Way. cables

01/ M-Way. cables 01/ 2015 M-Way cables M-WaY Cables There are many ways to connect devices and speakers together but only few will connect you to the music. My Way of connecting is just one of many but proved it self over

Nadere informatie

De Relatie tussen Lichamelijke Gezondheid, Veerkracht en Subjectief. Welbevinden bij Inwoners van Serviceflats

De Relatie tussen Lichamelijke Gezondheid, Veerkracht en Subjectief. Welbevinden bij Inwoners van Serviceflats De Relatie tussen Lichamelijke Gezondheid, Veerkracht en Subjectief Welbevinden bij Inwoners van Serviceflats The Relationship between Physical Health, Resilience and Subjective Wellbeing of Inhabitants

Nadere informatie

Joos Vandewalle. wiskunde voor iedereen

Joos Vandewalle. wiskunde voor iedereen Joos Vandewalle wiskunde voor iedereen Hoe kan je het wiskundig denken laten groeien en bloeien bij alle leerlingen? Joos Vandewalle Op basis van de ideeën van Jo Boaler Youcubed Mythes over wiskunde Mythes

Nadere informatie

Travel Survey Questionnaires

Travel Survey Questionnaires Travel Survey Questionnaires Prot of Rotterdam and TU Delft, 16 June, 2009 Introduction To improve the accessibility to the Rotterdam Port and the efficiency of the public transport systems at the Rotterdam

Nadere informatie

This appendix lists all the messages that the DRS may send to a registrant's administrative contact.

This appendix lists all the messages that the DRS may send to a registrant's administrative contact. This appendix lists all the messages that the DRS may send to a registrant's administrative contact. Subject: 1010 De houdernaam voor #domeinnaam# is veranderd / Registrant of #domeinnaam# has been changed

Nadere informatie

SEO Content. Creditcard aanvragen? Dé beste creditcards vergelijken.

SEO Content. Creditcard aanvragen? Dé beste creditcards vergelijken. Website review creditcardkiezer.nl Generated on October 16 2016 08:23 AM The score is 45/100 SEO Content Title Creditcard aanvragen? Dé beste creditcards vergelijken. Length : 57 Perfect, your title contains

Nadere informatie

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

Settings for the C100BRS4 MAC Address Spoofing with cable Internet. Settings for the C100BRS4 MAC Address Spoofing with cable Internet. General: Please use the latest firmware for the router. The firmware is available on http://www.conceptronic.net! Use Firmware version

Nadere informatie

Davide's Crown Caps Forum

Davide's Crown Caps Forum pagina 1 van 6 Davide's Crown Caps Forum A Forum for Crown Cap Collectors Zoeken Uitgebreid zoeken Zoeken Forumindex Crown Caps Unknown Caps Lettergrootte veranderen vriend Afdrukweergave Gebruikerspaneel

Nadere informatie

BE Nanoregistry Annual Public Report

BE Nanoregistry Annual Public Report 1 BE Nanoregistry Annual Public Report Carine Gorrebeeck FPS Health, Food Chain Safety & Environment 2 WHY? The objectives of the registry (a.o.): - Traceability: allow competent authorities to intervene

Nadere informatie

Exercise P672 Lightweight Structures. A.P.H.W. Habraken. Report

Exercise P672 Lightweight Structures. A.P.H.W. Habraken. Report Exercise 2011-2012 7P672 Lightweight Structures A.P.H.W. Habraken Report Group 4: S.H.M. van Dijck J.C. Fritzsche J. Koeken T. Relker F.G.M. van Rooijen M. Slotboom M. Steenbeeke J.P.T. Theunissen Date:

Nadere informatie

Adherence aan HWO en meer bewegen

Adherence aan HWO en meer bewegen Adherence aan HWO en meer bewegen Een experimenteel onderzoek naar de effecten van het motivationele stadium van patiënten en de adherence aan huiswerkoefeningen (HWO) bij fysiotherapie en het meer bewegen.

Nadere informatie

Daylight saving time. Assignment

Daylight saving time. Assignment Daylight saving time Daylight saving time (DST or summertime) is the arrangement by which clocks are advanced by one hour in spring and moved back in autumn to make the most of seasonal daylight Spring:

Nadere informatie

Sekseverschillen in Huilfrequentie en Psychosociale Problemen. bij Schoolgaande Kinderen van 6 tot 10 jaar

Sekseverschillen in Huilfrequentie en Psychosociale Problemen. bij Schoolgaande Kinderen van 6 tot 10 jaar Sekseverschillen in Huilfrequentie en Psychosociale Problemen bij Schoolgaande Kinderen van 6 tot 10 jaar Gender Differences in Crying Frequency and Psychosocial Problems in Schoolgoing Children aged 6

Nadere informatie

Vier voorbeelden van Fourier

Vier voorbeelden van Fourier Vier voorbeelden van Fourier Gjerrit Meinsma Mathematisch Café 1 Overzicht 1. Wereldkampioen matrix-vectorproduct 2. Fast Fourier Transform (FFT) 3. Voorbeelden: routers jpeg producten antialiasing Mathematisch

Nadere informatie

Tentamen Thermodynamica

Tentamen Thermodynamica Tentamen Thermodynamica 4B420 4B421 10 november 2008, 14.00 17.00 uur Dit tentamen bestaat uit 4 opeenvolgend genummerde opgaven. Indien er voor de beantwoording van een bepaalde opgave een tabel nodig

Nadere informatie

L.Net s88sd16-n aansluitingen en programmering.

L.Net s88sd16-n aansluitingen en programmering. De L.Net s88sd16-n wordt via één van de L.Net aansluitingen aangesloten op de LocoNet aansluiting van de centrale, bij een Intellibox of Twin-Center is dat de LocoNet-T aansluiting. L.Net s88sd16-n aansluitingen

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

Never trust a bunny. D. J. Bernstein University of Illinois at Chicago. Tanja Lange Technische Universiteit Eindhoven

Never trust a bunny. D. J. Bernstein University of Illinois at Chicago. Tanja Lange Technische Universiteit Eindhoven Never trust a bunny D. J. Bernstein University of Illinois at Chicago Tanja Lange Technische Universiteit Eindhoven The HB(n; ; 0 ) protocol (2001 Hopper Blum) Secret s 2 F n 2. Reader sends random C 2

Nadere informatie

Pesten onder Leerlingen met Autisme Spectrum Stoornissen op de Middelbare School: de Participantrollen en het Verband met de Theory of Mind.

Pesten onder Leerlingen met Autisme Spectrum Stoornissen op de Middelbare School: de Participantrollen en het Verband met de Theory of Mind. Pesten onder Leerlingen met Autisme Spectrum Stoornissen op de Middelbare School: de Participantrollen en het Verband met de Theory of Mind. Bullying among Students with Autism Spectrum Disorders in Secondary

Nadere informatie

Knelpunten in Zelfstandig Leren: Zelfregulerend leren, Stress en Uitstelgedrag bij HRM- Studenten van Avans Hogeschool s-hertogenbosch

Knelpunten in Zelfstandig Leren: Zelfregulerend leren, Stress en Uitstelgedrag bij HRM- Studenten van Avans Hogeschool s-hertogenbosch Knelpunten in Zelfstandig Leren: Zelfregulerend leren, Stress en Uitstelgedrag bij HRM- Studenten van Avans Hogeschool s-hertogenbosch Bottlenecks in Independent Learning: Self-Regulated Learning, Stress

Nadere informatie

Fysieke Activiteit bij 50-plussers. The Relationship between Self-efficacy, Intrinsic Motivation and. Physical Activity among Adults Aged over 50

Fysieke Activiteit bij 50-plussers. The Relationship between Self-efficacy, Intrinsic Motivation and. Physical Activity among Adults Aged over 50 De relatie tussen eigen-effectiviteit 1 De Relatie tussen Eigen-effectiviteit, Intrinsieke Motivatie en Fysieke Activiteit bij 50-plussers The Relationship between Self-efficacy, Intrinsic Motivation and

Nadere informatie

MANHATTAN RENTAL MARKET REPORT

MANHATTAN RENTAL MARKET REPORT MANHATTAN RENTAL MARKET REPORT FEBRUARY 2019 TABLE OF CONTENTS 03 INTRODUCTION 04 A QUICK LOOK 07 MEAN MANHATTAN RENTAL PRICES 11 MANHATTAN PRICE TRENDS 12 NEIGHBORHOOD PRICE TRENDS 12 BATTERY PARK CITY

Nadere informatie

Ouderlijke Controle en Angst bij Kinderen, de Invloed van Psychologische Flexibiliteit

Ouderlijke Controle en Angst bij Kinderen, de Invloed van Psychologische Flexibiliteit 1 Ouderlijke Controle en Angst bij Kinderen, de Invloed van Psychologische Flexibiliteit Nicola G. de Vries Open Universiteit Nicola G. de Vries Studentnummer 838995001 S71332 Onderzoekspracticum scriptieplan

Nadere informatie