Studie en implementatie van de bewegingscompensatie in een H.264/AVC-decoder

Maat: px
Weergave met pagina beginnen:

Download "Studie en implementatie van de bewegingscompensatie in een H.264/AVC-decoder"

Transcriptie

1 Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Studie en implementatie van de bewegingscompensatie in een H.264/AVC-decoder door Wouter Devolder Promotor: prof. dr. ir. R. Van de Walle Thesisbegeleider: lic. Yves Dhondt AFSTUDEERWERK INGEDIEND TOT HET BEHALEN VAN DE ACADEMISCHE GRAAD VAN LICENTIAAT IN DE INFORMATICA Academiejaar

2

3 Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Studie en implementatie van de bewegingscompensatie in een H.264/AVC-decoder door Wouter Devolder Promotor: prof. dr. ir. R. Van de Walle Thesisbegeleider: lic. Yves Dhondt AFSTUDEERWERK INGEDIEND TOT HET BEHALEN VAN DE ACADEMISCHE GRAAD VAN LICENTIAAT IN DE INFORMATICA Academiejaar

4 De 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. Datum Handtekening i

5 Dankwoord Eerst en vooral wil ik een woord van dank richten tot de mensen die mij gedurende het afgelopen academiejaar geholpen hebben met dit afstudeerwerk. Mijn promotor, Rik Van de Walle en mijn begeleiders, Yves Dhondt en Peter Lambert, wil ik bedanken voor de goede raad en tips die ze me gegeven hebben om deze thesis tot een goed einde te brengen. Verder wil ik mijn ouders bedanken voor de steun en hulp die ze me gegeven hebben en omdat ze steeds in me blijven geloven. Ook Patrick De Keyzer wil ik bedanken voor het aandachtig nalezen van deze thesis. Tot slot wens ik Linde te bedanken die mij doorheen het jaar gemotiveerd heeft, vooral tijdens de momenten dat het wat moeilijker ging, en die me ook de nodige ontspanning bezorgde. ii

6 Studie en implementatie van de bewegingscompensatie in een H.264/AVC-decoder door Wouter Devolder Afstudeerwerk ingediend tot het behalen van de academische graad van Licentiaat in de Informatica. Academiejaar Universiteit Gent Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Promotor: prof. dr. ir. R. Van de Walle Thesisbegeleider: lic. Yves Dhondt Samenvatting Deze thesis handelt hoofdzakelijk over het decoderen van een H.264/AVC-bitstroom. In de eerste hoofdstukken worden de H.264/AVC-standaard en de huidige situatie in het videocoderingslandschap geschetst. Hierbij wordt vooral aandacht besteed aan de aspecten die van belang zijn bij bewegingscompensatie. Daarna worden de algemene technieken besproken die kunnen gebruikt worden bij bewegingscompensatie, gevolgd door een bespreking van de specifieke processen voor bewegingscompensatie in een H.264/AVC-decoder. Ten eerste wordt het beheer van referentiebeelden besproken, gevolgd door vernieuwende technieken voor bewegingscompensatie binnen de standaard. Verder wordt de H.264/AVC-decoder toegelicht die in het kader van deze thesis werd uitgebreid. Hierbij wordt de algemene structuur van het programma toegelicht en worden de componenten besproken die werden toegevoegd in deze thesis. Tot slot worden enkele testen besproken die het geheugenbeheer en het gebruik van de vernieuwde technieken in deze standaard onderzoeken. Trefwoorden: H.264/AVC-standaard, videocompressie, bewegingscompensatie, referentiebeelden, temporele redundantie. iii

7 Inhoudsopgave Hoofdstuk 1 Inleiding Situering Doelstellingen Structuur...2 Hoofdstuk 2 Overzicht van de H.264/AVC-standaard Ontstaan Doelstellingen Enkele algemene begrippen Spectrale redundantie en de YUV-kleurruimte Spatiale en temporele redundantie en de soorten macroblokken Structurele opbouw van de gecodeerde stroom Het decodeerproces...10 Hoofdstuk 3 Bewegingscompensatie Het residu en de introductie van bewegingscompensatie Opsplitsing in macroblokken Subpixel bewegingsvectoren Gebruik van referentiebeelden Voorwaartse voorspelling Achterwaartse voorspelling Bidirectionele voorspelling...17 Hoofdstuk 4 Beheer van referentiebeelden in AVC Inleiding Markeerproces Adaptive memory control Opstellen van de lijst(en) van referentiebeelden...21 Hoofdstuk 5 Decoderen van intergecodeerde beelden in H.264/AVC Opsplitsen van macroblokken Componenten per macroblokpartitie Overgeslagen macroblokken en hun componenten Bewegingsvectoren Subpixelwaarden bij chrominantie...31 iv

8 5.6 Het interdecoderingsproces...32 Hoofdstuk 6 De decoder Inleiding Het ontwerp Algemeen De hiërarchie van de syntaxelementen De InputDecoder De nieuwe componenten De DecPicManager De klasse InterDecoding De mogelijkheden van de decoder Initiële mogelijkheden Toegevoegde mogelijkheden Samengevat...43 Hoofdstuk 7 Testen en metingen Metingen op het geheugengebruik Werkwijze Invloed van de beeldgrootte en het beheer van referentiebeelden Vergelijking tussen de thesisdecoder en de referentiedecoder Gebruik van de vernieuwende technieken Werkwijze Gebruik van (sub-)macroblokpartities Gebruik van subpixelbewegingsvectoren...52 Hoofdstuk 8 Besluit...54 Appendix A: TraceManager...56 A.1 Het aansturen van de TraceManager...56 A.2 De TraceManager uitbreiden...58 Appendix B: CD-ROM...60 Bibliografie...61 v

9 Lijst van figuren Figuur 2-1 Evolutie in compressiesterkte van de verschillende standaarden doorheen de jaren [1]...5 Figuur 2-2 Onderbemonstering bij YUV...7 Figuur 2-3 Structurele opbouw van een gecodeerde H.264/AVC-stroom...9 Figuur 2-4 Werking van een H.264/AVC-decoder...11 Figuur 3-1 Nieuwslezer - Het residu tussen opeenvolgende beelden...12 Figuur 3-2 Foreman - Volledig bewegend beeld...13 Figuur 3-3 Schematische voorstelling van bewegingscompensatie...14 Figuur 3-4 Het nut van macroblokken...15 Figuur 3-5 Subpixel bewegingsvector...16 Figuur 4-1 Algemeen overzicht van het beheer van referentiebeelden...18 Figuur 4-2 Overzicht van het markeerproces...20 Figuur 4-3 Reference Picture List Reordering Syntax [4]...22 Figuur 5-1 Opsplitsing in macroblokpartities...24 Figuur 5-2 Opsplitsing in sub-macroblokpartities...25 Figuur 5-3 Voorbeeld van het opsplitsen in (sub-)macroblokpartities...26 Figuur 5-4 Bepalen van naburige partities...27 Figuur 5-5 Directe voorspelling van bewegingsvectoren...27 Figuur 5-6 Naburige partities bij P-skip macroblokken...28 Figuur 5-7 Berekenen van halfpixelwaarden in H.264/AVC...30 Figuur 5-8 Berekenen van kwartpixelwaarden in H.264/AVC...30 Figuur 5-9 Berekenen van subpixelwaarden bij chrominantie in H.264/AVC...31 Figuur 5-10 Het decodeerproces van een intergecodeerd macroblok...32 Figuur 5-11 Decodeerproces voor een (sub-)macroblokpartitie...34 Figuur 6-1 Overzicht van de belangrijkste componenten in de decoder...36 Figuur 6-2 Hiërarchische opbouw van de syntaxelementen...37 Figuur 6-3 Het verloop van het decoderen van een beeld...39 Figuur 6-4 Opbouw van de DecPicManager...40 Figuur 6-5 De klasse InterDecoding...41 Figuur 7-1 Geheugengebruik bij de thesisdecoder voor P-beelden...46 Figuur 7-2 Vergelijking geheugenbeheer tussen de thesisdecoder en de referentiedecoder...48 vi

10 Figuur 7-3 Partitieverdeling bij Foreman (percentage van het beeld)...51 Figuur 7-4 Partitieverdeling bij Foreman (percentage van het aantal partities)...51 Figuur 7-5 Gebruik van subpixelbewegingsvectoren...52 Figuur 7-6 Verdeling op sub-pixelniveau van bewegingsvectoren...53 vii

11 Lijst van tabellen Tabel 2-1 Overzicht van macrobloktypes per slicetype...7 Tabel 2-2 Soorten NAL-units...8 viii

12 Hoofdstuk 1 Inleiding 1.1 Situering Technologieën zoals digitale TV, streaming video en vooral DVD-video brengen tegenwoordig digitale video tot in de huiskamer. Door dergelijke technologieën is de populariteit van digitale video de laatste jaren aanzienlijk toegenomen en is videocompressie een belangrijke component geworden in het medialandschap. De hedendaagse toepassingen van DVD-video en digitale TV zijn gebaseerd op de H.262/MPEG-2-standaard, die gedefinieerd werd tussen 1990 en 1995 in een samenwerking tussen MPEG 1 van ISO/IEC 2 en VCEG 3 van ITU-T 4. Maar tussen 1995 en nu hebben de compressietechnieken voor digitale video een hele evolutie doorgemaakt en ook de technologie is niet blijven stilstaan. Zo is de bandbreedte op het internet sterk toegenomen, waardoor het stromen van bewegende beelden over het internet mogelijk werd. Ook de processorcapaciteit en de opslagcapaciteit zijn aanzienlijk toegenomen. Het ontwikkelen van een nieuwe verbeterde videocoderingsstandaard kon dan ook niet uitblijven, want een sterkere compressie brengt talrijke voordelen met zich mee: - een betere kwaliteit bij een zelfde bandbreedte bij streaming video - snellere downloadtijden van videobestanden 1 MPEG : Moving Picture Experts Group 2 ISO/IEC : International Standardization Organization/International Electrotechnical Comission 3 VCEG : Video Coding Experts Group 4 ITU-T : International Telecommunication Union, Telecommunication Standardization Sector 1

13 - nog betere kwaliteit op DVD s - langere films op een DVD - Daarom hebben ITU-T VCEG en ISO MPEG hun krachten opnieuw gebundeld en richtten ze het Joint Video Team (JVT) op, om samen een nieuwe videocoderingstandaard te ontwikkelen: de H.264/AVC-standaard. 1.2 Doelstellingen De titel van deze thesis is Studie en implementatie van de bewegingscompensatie in een H.264/AVC-decoder. In de eerste plaats is het dus de bedoeling om de algoritmes voor de bewegingscompensatie te bestuderen aan de hand van de JVT-standaard. Daarnaast is het de bedoeling om deze bewegingscompensatie te implementeren in de foutrobuuste H.264/AVC-decoder die vorig academiejaar ontwikkeld werd door Tom Pycke in het kader van zijn afstudeerwerk. Het uiteindelijke doel is, dat de decoder ook P-beelden kan decoderen. Verder zullen ook nog testen uitgevoerd worden die het nut van deze nieuwe technieken en de aangepaste thesisdecoder aangeven. 1.3 Structuur In deze thesis wordt er vanuit gegaan dat u reeds vertrouwd bent met de basistermen van videocompressie. In Hoofdstuk 2 (Overzicht van de H.264/AVC-standaard) wordt een overzicht gegeven van het ontstaan en de belangrijkste principes van de H.264/AVCstandaard zonder al te veel in detail te gaan. In Hoofdstuk 3 (Bewegingscompensatie) wordt overgegaan naar een overzicht van de basisprincipes van bewegingscompensatie. Hierbij vertrekken we van heel eenvoudige technieken en introduceren we, naarmate het hoofdstuk vordert, meer geavanceerde technieken, die telkens geïllustreerd worden aan de hand van een verduidelijkend voorbeeld. 2

14 In Hoofdstuk 4 (Beheer van referentiebeelden in AVC) beginnen we aan de studie van de H.264/AVC-standaard. In dit hoofdstuk wordt duidelijk hoe de referentiebeelden worden beheerd in de H.264/AVC-decoder. In Hoofdstuk 5 (Decoderen van intergecodeerde beelden in H.264/AVC) wordt de bewegingscompensatie in de H.264/AVC-decoder besproken en hoe dit proces verloopt voor P-beelden. In Hoofdstuk 6 (De decoder) worden de structuur en alle componenten van de aangepaste decoder besproken. Er wordt ook een overzicht gegeven van de functionaliteit die ondersteund wordt in de decoder na afloop van deze thesis. In Hoofdstuk 7 (Testen en metingen) worden enkele testen uitgevoerd met betrekking tot het verloop van het geheugenbeheer in de thesisencoder en worden ook enkele metingen uitgevoerd op het gebruik van de vernieuwende technieken in de H.264/AVC-standaard. In Hoofdstuk 8 (Besluit) sluiten we deze thesis af door een overzicht te geven van de ondersteunde functionaliteiten in de thesisdecoder en een blik te werpen op de mogelijkheden van deze decoder voor de toekomst. Verder zijn er nog 2 appendices: Appendix A (TraceManager): Deze handelt over een extra component die toegevoegd werd aan de thesisdecoder, om het traceren van bepaalde waarden uit het decodeerproces centraal te beheren. Appendix B (CD-ROM): Deze bevat de CD-ROM die de broncode bevat van de thesisdecoder. 3

15 Hoofdstuk 2 Overzicht van de H.264/AVCstandaard 2.1 Ontstaan In 1997 begon VCEG met de ontwikkeling van de H.26L, die bedoeld was als een videocompressiestandaard voor telecommunicatietoepassingen die lage bitsnelheden gebruiken. Ondertussen was de MPEG ook bezig met de ontwikkeling van de MPEG-4- standaard. Dit is de nieuwste standaard die ondersteuning biedt voor zowel audio als video. Bij de ontwikkeling van het visuele deel van de standaard werd gezocht naar een geavanceerde coderingstandaard. Daarbij kwam de H.26L als meest geschikte uit. Zo werd een samenwerking aangegaan met de VCEG en werd het Joint Video Team opgericht. Voor de verdere ontwikkeling werd de standaard bij de VCEG omgedoopt naar H.264 en bij de MPEG kreeg hij de titel Advanced Video Coding (AVC), MPEG-4 part 10. In 2003 werd de standaard gepubliceerd. 4

16 2.2 Doelstellingen Bij het ontwikkelen van de standaard werd rekening gehouden met een aantal technische doelen [1]: Een significante verbetering van de compressiesterkte. Hierbij werd een verbetering beoogd van 50% t.o.v. elke andere videocoderingsstandaard. In Figuur 2-1 kan u zien dat dit doel zeker bereikt is t.o.v. de verouderde MPEG-2- standaard. Foutrobuustheid: Het opvangen van fouten omwille van het transport. Netwerkvriendelijk: De overdracht van moet zo eenvoudig mogelijk zijn. De mogelijkheid om kleine vertragingstijden te ondersteunen, voor bijvoorbeeld videoconferencing. Eenvoud van syntax en het beogen van eenvoudige en propere oplossingen i.p.v uitzonderingstoestanden te voorzien. Figuur 2-1 Evolutie in compressiesterkte van de verschillende standaarden doorheen de jaren [1] 5

17 2.3 Enkele algemene begrippen Een videosequentie bestaat uit een aantal opeenvolgende beelden. Om de beelden gemakkelijker te kunnen coderen, wordt elk beeld opgesplitst in kleinere onderdelen, de zogenaamde macroblokken. Dit zijn blokken van 16 op 16 pixels groot. Elk beeld kan ook nog onderverdeeld worden in een aantal grotere delen, dit zijn dan de slices. Een slice bevat een aantal macroblokken van één beeld. Bij videocompressie is het doel om de redundante informatie tot een minimum te beperken. Bij videobeelden kunnen we 3 verschillende vormen van redundante informatie onderscheiden. In paragrafen en bespreken we welke deze zijn en hoe de H.264/AVC-standaard met deze redundantie omgaat Spectrale redundantie en de YUV-kleurruimte Gezien videosequenties steeds door mensen worden bekeken, kunnen we rekening houden met het Menselijk Visueel Systeem, ofte Human Visual System (HVS). Dit is veel gevoeliger voor lage frequenties dan voor hoge frequenties. Indien een deel van deze hoge frequenties wordt weggelaten, dan zal dit voor het HVS nauwelijks merkbaar zijn. H.264/AVC maakt hier handig gebruik van door het gebruik van de YCbCr kleurenruimte (ook gekend als YUV). Deze is opgebouwd uit 3 componenten: - De Y-component geeft de lichtsterkte weer, wat de lage frequentie is. Deze component is ook gekend al de luminantie of het luma. - De Cr- en Cb-componenten geven kleurinformatie weer over respectievelijk de rode en de blauwe component. Deze zijn ook gekend als de chrominantie of het chroma. Een derde groene kleurcomponent kan berekend worden aan de hand van Y-, Cren Cb-waarden. H.264/AVC zal deze redundantie uitbuiten door onderbemonstering van de chrominantiecomponenten. Dit betekent dat de chrominantiecomponenten op een lagere resolutie zullen worden voorgesteld. Bij een normale bemonstering zijn de 3 componenten voor elk pixel bepaald (YUV 4:4:4), maar H.264/AVC zal gebruik maken van YUV 4:2:0, waarbij voor 4 pixels volgende waarden beschikbaar zijn: 6

18 4 Y-waarden, 1 Cr-waarde en 1 Cb-waarde. Hierdoor kunnen 4 pixels voorgesteld worden door 6 bytes i.p.v. 12 bytes. Dit wordt geïllustreerd in Figuur 2-2. YUV 4:4:4 YUV 4:2:2 YUV 4:2:0 Figuur 2-2 Onderbemonstering bij YUV Spatiale en temporele redundantie en de soorten macroblokken In H.264/AVC is zijn er twee modes waarin macroblokken kunnen voorspeld worden. De eerste mode is intrapredictie, waarbij gebruik gemaakt wordt van het feit dat naburige pixels meestal afhankelijk zijn van elkaar. Dit wordt ook wel spatiale redundantie genoemd. Hiervoor zijn twee types macroblokken voorzien de I- en SImacroblokken. De tweede mode, interpredictie, maakt gebruik van het feit dat opeenvolgende beelden heel wat gelijkenissen vertonen, ook wel gekend als temporele redundantie. Hierbij worden twee soorten macroblokken onderscheiden, de P-blokken die een predictie maken aan de hand van oudere beelden in afspeelvolgorde en B-blokken die zowel jongere als oudere beelden kunnen gebruiken. We hebben reeds aangehaald dat een beeld in een H.264/AVC-stroom opgebouwd is uit één of meerdere slices. Ook van deze slices zijn er verschillende types mogelijk. Er wordt vooral onderscheid gemaakt in de soort macroblokken ze kunnen bevatten. Een overzicht hiervan wordt gegeven in Tabel 2-1. Tabel 2-1 Overzicht van macrobloktypes per slicetype Slicetype Macrobloktypes Voorspellingmodi I-slice I-macroblokken Intra P-slice P- en I-macroblokken Inter en intra B-slice B-, P- en I-macroblokken Inter en intra SI-slice SI- en I-macroblokken Intra SP-slice P-macroblokken Inter 7

19 2.4 Structurele opbouw van de gecodeerde stroom Bij een gecodeerde H.264/AVC-stroom zijn de Video Coding Layer (VCL) en de Network Abstraction Layer (NAL) van elkaar gescheiden. Een visuele voorstelling van een dergelijke stroom wordt aangegeven in Figuur 2-3. Een H.264/AVC-stroom is eigenlijk samengesteld uit verschillende NAL-units, die elk opgebouwd zijn uit: - NAL-header: Dit is de hoofding van de NAL-unit die aangeeft welk soort inhoud deze bevat en aangeeft hoe groot de RBSP is. - RBSP (Raw Byte Sequence Payload): Dit is de ruwe bytesequentie die de VCL bevat. De betekenis van deze bytesequentie wordt aangegeven door de NAL-header. De RBSP kan verschillende soorten gegevens bevatten. Een kort overzicht hiervan ziet u in Tabel 2-2. De belangrijkste hiervan zijn de SPS en PPS, die informatie bevatten die gelden over verschillende beelden. Natuurlijk zijn ook de coded slices van groot belang, want deze bevatten de gecodeerde beelden. Tabel 2-2 Soorten NAL-units 0 Unspecified 7 Sequence parameter set (SPS) 1 Coded slice of a non-idr-picture 8 Picture parameter set (PPS) 2 Coded slice data partition A 9 Access unit delimiter 3 Coded slice data partition B 10 End of sequence 4 Coded slice data partition C 11 End of stream 5 Coded slice of an IDR-picture 12 Filler data 6 Supplemental enhancement information Reserved Unspecified Bij het coderen wordt een beeld opgesplitst in macroblokken, dit zijn blokken van 16x16 pixels. Deze macroblokken worden vervolgens in een aantal slices geplaatst en zo getransporteerd m.b.v. NAL-units naar een decoder. Naast macroblokken 8

20 bevat een dergelijke slice ook nog randinformatie. Een slice is opgebouwd als volgt (zie ook Figuur 2-3): - Slice Header: Deze geeft aan tot welk beeld de macroblokken in de slice behoren en bevat tevens enkele algemene parameters die van toepassing zijn op alle macroblokken in deze slice. Verder kan een slice header nog volgende componenten bevatten: o Reference Picture List Reordering: Deze component wordt gebruikt bij intercodering en bevat informatie m.b.t. het herordenen van de lijst(en) van referentiebeelden. (zie ook Hoofdstuk 4) o Prediction Weight Table: Bij het voorspellen van een beeld aan de hand van meerdere referentiebeelden, kan het ene referentiebeeld een grotere invloed hebben op het doelbeeld dan het andere referentiebeeld. In de prediction weight table wordt het gewicht voor de voorspelling van ieder referentiebeeld aangegeven. o Decoded Reference Picture Marking: Hierin zitten gegevens vervat die aansturen hoe de gedecodeerde beelden moeten gemarkeerd worden. Dit wordt nader besproken in Hoofdstuk 4. SliceHeader Header NAL-unit RBSP Coded Slice of a (non-)idr picture SliceData Macroblok Macroblok Skip_run Macroblok Macroblok SliceHeader RefPicListReordering PredictionWeightTable DecRefPicMarking NAL VCL Macroblok mb_type MbPred SubMbPred Residual Figuur 2-3 Structurele opbouw van een gecodeerde H.264/AVC-stroom - Slice Data: De slice data bevat de macroblokken die behoren tot deze slice. Zoals u kan zien in Figuur 2-3 bevat de slice data naast de macroblokken ook nog een gegeven skip_run. Deze skip_run is een geheel getal dat aangeeft 9

21 hoeveel macroblokken niet gecodeerd moeten worden. Het overslaan (skippen) van macroblokken is mogelijk, omdat er bij elk macroblok reeds een voorspelling wordt gemaakt van het referentiebeeld en de bewegingsvector. Indien deze voorspelling voldoende goed is, hoeft er verder voor dit macroblok niets gecodeerd te worden en kan het macroblok dus overgeslagen worden. Elk macroblok bevat volgende componenten: - Macroblock type: De standaard legt een bepaald aantal macrobloktypes vast, die elk hun specifieke eigenschappen hebben. Elk van deze types heeft een bepaald nummer gekregen waardoor het geïdentificeerd kan worden, een dergelijk nummer is een macroblock type. - Macroblock Prediction: Zowel bij intra- als bij intercodering wordt er meestal een voorspelling gemaakt van het macroblok aan de hand van naburige macroblokken en bij intercodering ook aan de hand van referentiebeelden. De parameters die gebruikt worden voor deze voorspelling worden aangegeven in de macroblock prediction. - Sub-macroblock Prediction: Deze component wordt enkel gebruikt bij intercodering en geeft parameters aan indien het macroblok opgesplitst wordt in sub-macroblokpartities. Meer hierover in Hoofdstuk 5. - Residual: Deze component bevat alle details van het beeld die niet konden gemaakt worden aan de hand van gemaakte voorspellingen. 2.5 Het decodeerproces Gezien we in deze thesis een studie maken van de bewegingscompensatie bij een H.264/AVC-decoder geven we hier nog een kort overzicht van hoe een dergelijke decoder er zou moeten uitzien. Het decodeerproces verloopt als volgt (zie Figuur 2-4): - De gegevens zijn initieel gecomprimeerd verpakt in NAL-units. Deze gegevens worden dus eerst gedecomprimeerd door de entropy decoder. - Indien nodig worden de macroblokken herordend. (Reorder) - Voor elk macroblok wordt het verschilbeeld D opgesteld dat zal toegevoegd worden aan het voorspelde beeld P. De coëfficiënten die dit verschilbeeld 10

22 bepalen zijn geschaald en getransformeerd, dus moeten deze twee processen invers uitgevoerd worden op de coëfficiënten. - Tevens wordt voor elk macroblok een voorspelling gemaakt van het beeld. Dit kan op twee manieren gebeuren: o m.b.v. intra prediction, waarbij rekening wordt gehouden met de naburige macroblokken binnen het huidige beeld, die reeds gedecodeerd werden. o m.b.v. motion compensation (bewegingscompensatie) waarbij rekening wordt gehouden met beelden die reeds gedecodeerd werden. - Nu wordt het macroblok M gereconstrueerd door het samenvoegen van P en D. M wordt tijdens het decoderen van het huidige beeld nog bijgehouden en kan hierbij nog gebruikt worden voor het opstellen van een macroblokvoorspelling met intrapredictie. - Als alle macroblokken van het huidige beeld gereconstrueerd zijn, bekomen we een voorlopig beeld. Hierop wordt de deblocking filter toegepast. NAL Entropy decode Motion Compensation Intra prediction Reference pictures ReOrder P Inverse Quantisation Inverse Transform Decoding D + M Deblocking Filter Reconstructed Picture Figuur 2-4 Werking van een H.264/AVC-decoder 11

23 Hoofdstuk 3 Bewegingscompensatie Doorheen dit hoofdstuk zullen de algemene technieken geïntroduceerd worden die bij bewegingscompensatie gebruikt worden. 3.1 Het residu en de introductie van bewegingscompensatie Bij digitale video wordt de beweging gesimuleerd door het snel na elkaar afspelen van stilstaande beelden, waardoor de meeste opeenvolgende beelden veel overeenkomsten vertonen. Dit maakt dat het nodeloos veel bits zou vragen om deze beelden onafhankelijk van elkaar te coderen. Figuur 3-1 Nieuwslezer - Het residu tussen opeenvolgende beelden Het residu Een eerste manier om een stuk van de redundantie tussen twee beelden te reduceren, is enkel het residu (verschilbeeld) tussen het huidige beeld en het vorige beeld te nemen. Dit kan zeer efficiënt zijn bij beelden waarvan de achtergrond ongewijzigd blijft en de figuur op de voorgrond enkel wijzigt, zoals de nieuwslezeres 12

24 in Figuur 3-1. In dit geval zal het grootste deel van het beeld ongewijzigd blijven, waardoor het residu heel veel kleine waarden zal bevatten. Als dit beeld dan gecomprimeerd wordt met technieken als variabele lengte-codering 5, dan kan het residu heel sterk gecomprimeerd worden. Bewegingsvectoren en de introductie van bewegingscompensatie In de praktijk echter is deze techniek niet zo efficiënt. Meestal worden beelden opgenomen met een bewegende camera, waardoor ook de achtergrond meebeweegt. Indien we dan het pure verschilbeeld zouden nemen, zou hier al heel wat meer energie in kruipen dan bij de nieuwslezer. Figuur 3-2 Foreman - Volledig bewegend beeld In Figuur 3-2 ziet u een voorbeeld waarbij de achtergrond ook beweegt. Hoewel beeld (a) en (c) op het eerste zicht niet veel lijken te verschillen op de achtergrond, begint het residu (b) toch al weer op een volwaardig beeld te lijken. Hier ontstaat dan ook de nood aan bewegingscompensatie. Dit leggen we uit aan de hand van Figuur 3-3: - Bij bewegingscompensatie wordt er eerst een schatting gemaakt van de beweging tussen de twee beelden, de informatie van deze schatting zullen we de bewegingsinformatie noemen. Dit omvat onder andere bewegingsvectoren die toegepast worden op (delen van) het referentiebeeld. - Aan de hand van het referentiebeeld en de bewegingsinformatie construeert de bewegingscompensatie een geschat beeld. - Daarna worden het geschatte beeld en het residu bij elkaar opgeteld en wordt zo het doelbeeld bekomen. 5 Variabele lengte-codering is een compressiemethode waarbij de veel voorkomende waarden een korte code krijgen en de weinig voorkomende waarden een langere code krijgen. 13

25 Referentie- Beeld Bewegingscompensatie Bewegingsinformatie Geschat Beeld + Residu = Doelbeeld Figuur 3-3 Schematische voorstelling van bewegingscompensatie Hierbij moet wel rekening gehouden worden dat naast het residu, ook de bewegingsinformatie zal moeten gecodeerd worden. De kosten (in gecodeerde bits) om de bewegingsinformatie te coderen mogen dus niet groter zijn dan de kostenbesparing bij het residu. Verder in dit hoofdstuk worden technieken besproken die het bepalen van het geschatte beeld kunnen optimaliseren. 3.2 Opsplitsing in macroblokken Daar een beeld meestal verschillende objecten bevat, is het aangewezen om meer dan één bewegingsvector te gebruiken bij de bewegingsschatting. Dit wordt gerealiseerd door het beeld op te splitsen in macroblokken. In de meeste hedendaagse videocoderingsstandaarden worden beelden opgesplitst in blokken van 16x16 pixels. Hierdoor kunnen de bewegingen van de verschillende objecten in een beeld tot op 16 pixels nauwkeurig bepaald worden. Aan de hand van het voorbeeld dat we reeds in Figuur 3-1 zagen, zal het nut geïllustreerd worden van het opsplitsen van een beeld in macroblokken bij bewegingscompensatie. In Figuur 3-4 zoomen we even dieper in op dit beeld. Zoals we kunnen zien in (b), wijzigen slechts enkele details van het gezicht. Daarom kan het nuttig zijn om voor elk van deze gewijzigde delen een bewegingsvector op te stellen. Dit gaat als volgt: - Het referentiebeeld (a) wordt opgesplitst in macroblokken (van 16 op 16 pixels) - Op elk van deze macroblokken wordt een bewegingsvector toegepast, zodat we tot een geschat beeld komen. - Nu moet enkel nog het residu tussen het geschatte beeld en het huidige beeld (c) gecodeerd worden. In (d) ziet u het residu tussen dit geschatte 14

26 beeld en (c). Het verschil met het pure residu (b) is duidelijk te merken doordat het verschilbeeld in (d) veel vager geworden is en dus kleinere waarden bevat. Dit resulteert in een residu dat met minder bits kan gecodeerd worden. Figuur 3-4 Het nut van macroblokken In (e) en (f) wordt aangegeven dat het ook mogelijk is om nog betere geschatte beelden te construeren door gebruik te maken van kleinere macroblokken. Hierbij moet men er dan wel rekening mee houden dat het meer gecodeerde bits zal vergen om 4 tot 16 keer zoveel bewegingsvectoren te coderen. 3.3 Subpixel bewegingsvectoren Naast het gebruik van meerdere bewegingsvectoren, speelt ook de precisie van de bewegingsvectoren een belangrijke rol. 15

27 Gezien bewegingen niet noodzakelijk tot op één pixel nauwkeurig gebeuren, is het ook nuttig om bewegingsvectoren te gebruiken die een precisie op subpixelniveau hebben. Dit wordt geïllustreerd aan de hand van een uitgewerkt voorbeeld (Figuur 3-5): X = 1,5 S Y=-0,5 R = volle pixelpositie = halve pixelpositie Figuur 3-5 Subpixel bewegingsvector 1. Op subpixelniveau wordt een schatting gemaakt van het subpixel R door een interpolatie uit te voeren aan de hand van naburige pixels uit het referentiebeeld. 2. Het geschatte pixel R uit het referentiebeeld wordt nu verschoven volgens de bewegingsvector en wordt op positie S geplaatst in het geschatte beeld. Het is natuurlijk niet noodzakelijk dat de precisie beperkt blijft tot een halve pixel. Sommige videocoderingsstandaarden maken ook gebruik van kwartpixelprecisie, maar ook hier moet men er rekening mee houden dat preciezere bewegingsvectoren meer bits vereisen in de gecodeerde stroom en dus moet men de voor- en nadelen afwegen. Verder kan het interpoleren op verschillende manieren gebeuren. Voor het berekenen van R konden we ook nog meerdere naburige pixels gebruiken, die dan ook hun invloed zouden hebben op het resultaat. 3.4 Gebruik van referentiebeelden Hoewel het logisch lijkt dat het referentiebeeld altijd het vorige beeld is, hoeft dit niet altijd zo te zijn. Er bestaan verschillende situaties waarin men voor een ander beeld kan kiezen. 16

28 3.4.1 Voorwaartse voorspelling De voorwaartse voorspelling is de normale voorspelling, waarbij men een referentiebeeld gebruikt dat vóór het huidige beeld komt (in afspeelvolgorde). Dit betekent echter wel dat het mogelijk is dat er een referentiebeeld wordt gebruikt dat ouder is dan het vorige beeld, maar dat toch meer overeenkomsten heeft met het huidige beeld. Voorbeeld: In een reclameboodschap staat er een tekst te knipperen om er aandacht op te vestigen. Dan is het voldoende om na een aantal beelden leegte, opnieuw het beeld met de tekst als referentiebeeld te gebruiken, in plaats van de volledige tekst opnieuw te moeten coderen. Dit systeem kan natuurlijk toegepast worden bij herhalende bewegingen, zoals bewegende lippen, knipperende ogen, knipperende lichten, Achterwaartse voorspelling Achterwaartse voorspelling maakt gebruik van een referentiebeeld dat ná het huidige beeld komt (in afspeelvolgorde). Dit kan vooral een voordeel opleveren indien een object deels te voorschijn komt in het huidige beeld en in het referentiebeeld al volledig zichtbaar is Bidirectionele voorspelling Een bidirectionele voorspelling bundelt de krachten van voorwaartse en achterwaartse voorspelling. Voor elk macroblok wordt een aparte voorspelling gemaakt en hiervoor wordt onderscheid gemaakt tussen 3 verschillende modes: (a) Voorwaartse voorspelling (b) Achterwaartse voorspelling (c) Bidirectionele voorspelling: het gemiddelde beeld van de voorwaartse en de achterwaartse voorspelling Het grote verschil met een voorspelling in één richting is, dat sommige stukken van een beeld in een vroeger beeld volledig zijn, terwijl andere delen dit in een later beeld zullen zijn. Op deze manier kan een optimale combinatie van voorspellingen gecombineerd worden, waardoor de compressie-efficiëntie tot meer dan 50% kan verbeteren [3]. 17

29 Hoofdstuk 4 Beheer van referentiebeelden in AVC 4.1 Inleiding Het beheer van referentiebeelden is één van de belangrijke aspecten in de H.264/AVC-decoder. Er is een hele waaier van mogelijkheden voorzien, waarbij de gecodeerde stroom kan aangeven welke beelden bijgehouden moeten worden voor referentie en welke verwijderd mogen worden. Zoals reeds aangegeven in paragraaf 3.4, bestaan er situaties waarin een beeld dat een tijd voordien werd gedecodeerd, het meest geschikt is om naar te refereren. Daar het niet haalbaar is om alle gedecodeerde beelden bij te houden, ontstaat de nood om deze beelden te beheren. Er wordt een onderscheid gemaakt tussen deze die binnen korte tijd 1. Syntax inlezen zullen gebruikt worden voor referentie en deze die over een Is het beeld langere periode zullen gebruikt worden. integecodeerd? In Figuur 4-1 is een algemeen overzicht weergegeven van de werking van het beheer van referentiebeelden: 1. De syntax van het gecodeerde beeld wordt ingelezen. 2. Indien het beeld intergecodeerd is, wordt aan de hand van de beschikbare referentiebeelden een lijst opgesteld van referentiebeelden, waarvan de volgorde afhankelijk kan zijn van syntax-elementen uit het gecodeerde beeld. (Zie paragraaf 4.3) Nee 3. Decodeer het beeld 4. Markeer het beeld voor referentie 2. RefPicList(s) opstellen Figuur 4-1 Algemeen overzicht van het beheer van referentiebeelden Ja 18

30 3. Het beeld wordt gedecodeerd. 4. Er wordt aangegeven of het gemarkeerde beeld voor korte of lange termijn referentie zal gebruikt worden. Er wordt ook aangegeven of oudere beelden mogen verwijderd worden of eventueel veranderen van status. Dit gebeurt dan ook aan de hand van syntaxelementen. (Zie paragraaf 4.2) 4.2 Markeerproces Het markeerproces verloopt hoofdzakelijk na het decoderen van een beeld. Hierbij worden eerst de markeringen op de reeds aanwezige referentiebeelden aangepast en daarna wordt ook het huidige beeld gemarkeerd. Alle informatie omtrent het markeren van de referentiebeelden wordt meegegeven in het onderdeel Decoded Reference Picture Marking [JVT ] van de Slice Header. Een beeld kan op 3 manieren gemarkeerd worden: Used for short-term reference: Dit betekent dat dit beeld zal bijgehouden worden zolang het aantal referentiebeelden een bepaald aantal niet overschrijdt. Dit aantal is vooraf doorgegeven met de Sequence Parameter Set. Indien dit aantal overschreden wordt, wordt het oudste short-term reference-beeld gemarkeerd als not used for reference. Used for long-term reference: Dit betekent dat dit beeld zal bijgehouden worden zolang er geen expliciet commando gegeven wordt dat het mag verwijderd worden. Not used for reference: Dit beeld moet niet langer bijgehouden worden voor referentie en mag verwijderd worden indien het voor geen andere processen meer nodig is. Het markeerproces zelf verloopt als volgt (zie Figuur 4-2): 1. Eerst wordt er gecontroleerd of de IDR-vlag (Instantaneous Decoding Refresh) op waar staat. 2. Indien de IDR-vlag op waar staat, betekent dit dat alle aanwezige referentiebeelden als not used for reference mogen gemarkeerd worden. Hierbij wordt de markering voor het huidige beeld bepaald door de syntaxelementen. 19

31 3. Indien de IDR-vlag op vals staat, dan wordt gecontroleerd of de adaptive picture marking mode -vlag op waar staat. Indien deze vlag op waar staat, betekent dit dat de gecodeerde stroom expliciete commando s bevat voor het markeren van de referentiebeelden. (4.2.1 Adaptive memory control) Indien deze vlag op vals staat, wordt het sliding window proces uitgevoerd. Dit houdt in dat het oudste short-term reference picture gemarkeerd wordt als not used for reference, m.a.w. dat het mag verwijderd worden. 4. Het huidige beeld markeren: Indien de IDR-vlag op waar staat, dan is de markering afhankelijk van long term reference -vlag, die bepaalt of het beeld gemarkeerd wordt als Used for short-term reference of als Used for long-term reference. Indien de IDR-vlag op vals staat, wordt het beeld gemarkeerd als Used for short-term reference vlag IDR = waar? Ja Nee Alle aanwezige referentiebeelden verwijderen. Ja Adaptive_pic_marking_mode_flag = waar? Nee Adaptive memory control Sliding Window process Markeer huidig beeld voor korte of lange referentie Markeer huidig beeld voor korte referentie Figuur 4-2 Overzicht van het markeerproces 20

32 4.2.1 Adaptive memory control Bij adaptive memory control kan de gecodeerde stroom 6 verschillende operaties laten uitvoeren. De mogelijke operaties zijn de volgende: 1. Een short-term reference picture markeren als unused for reference. 2. Een long-term reference picture markeren als unused for reference. 3. Een short-term reference picture markeren als used for long-term reference. 4. Het maximale indexnummer van een long-term reference picture opnieuw instellen, waardoor de long-term reference pictures met een hoger indexnummer gemarkeerd worden als unused for reference. 5. Alle referentiebeelden markeren als unused for reference en het maximale indexnummer van een long-term reference picture instellen op no long-term frame indices. 6. Het huidige gedecodeerde beeld markeren als used for long-term reference. Elk van deze operaties kan meerdere malen uitgevoerd worden en voor elk van deze operaties zijn natuurlijk ook de nodige syntaxelementen aanwezig. 4.3 Opstellen van de lijst(en) van referentiebeelden Bij het decoderen van intergecodeerde beelden worden steeds één of meerdere referentiebeelden gebruikt. Voor elk macroblok kan dit een ander referentiebeeld zijn. Daarom is het belangrijk dat de identificatie van dit referentiebeeld met een korte code kan gebeuren. In de H.264/AVC-standaard werd als code gekozen voor de positie van dit beeld in de lijst van referentiebeelden en hoe kleiner dit getal, hoe korter het kan gecodeerd worden m.b.v. variabele lengte codering. Daarom is het belangrijk dat veel gebruikte beelden vooraan in de lijst van referentiebeelden staan, want zelfs bij een lage beeldgrootte van 176x144 zijn er 99 macroblokken en moet minstens 99 keer het bijhorende referentiebeeld bepaald worden. In deze paragraaf wordt er dieper ingegaan op het initieel opstellen van deze lijst(en) van referentiebeelden en het herordenen van deze lijst(en). Bij P-beelden wordt slechts één lijst gebruikt, genaamd RefPicList0. Deze bevat alle referentiebeelden die geordend zijn afhankelijk van hun volgorde van decoderen. Bij 21

33 B-beelden daarentegen worden twee lijsten opgesteld, namelijk RefPicList0 en RefPicList1. Hierbij worden de beelden in beide lijsten geordend afhankelijk van hun volgorde in de PictureOrderCount. We zullen echter niet dieper ingaan op het opstellen van lijsten van referentiebeelden bij B-beelden, gezien we in deze thesis enkel het decoderen van P-beelden behandelen. Het opstellen van RefPicList0 bij P-beelden verloopt als volgt: 1. Voor elk referentiebeeld wordt een PicNum of LongTermPicNum bepaald, afhankelijk of het gemarkeerd is als Used for short-term reference of als Used for long-term reference. 2. Initieel wordt RefPicList0 aangemaakt, met alle referentiebeelden. De shortterm reference pictures zitten vooraan in de lijst, gesorteerd volgens dalende PicNum en achteraan de long-term reference pictures gesorteerd volgens stijgende LongTermPicNum. 3. De initiële RefPicList0 kan ook nog herordend worden door commando s die gegeven worden vanuit de syntaxelementen. Het herordenen van de RefPicList wordt gestuurd vanuit het syntax-onderdeel Reference picture list reordering syntax [JVT ] uit de SliceHeader. Zie ook Figuur ref_pic_list_reordering_flag 1 reordering_of_pic_nums_idc 0,1 3 abs_diff_pic_num_minus1 2 long_term_pic_num Figuur 4-3 Reference Picture List Reordering Syntax [4] Het herordenen zelf verloopt als volgt: 1. Een variabele refidx wordt geïnitialiseerd, zodat het naar het eerste element in de lijst van referentiebeelden wijst. 2. Het syntaxelement reordering_of_pic_nums_idc stuurt aan of er nog referentiebeelden moeten herordend worden. 22

34 3. Het referentiebeeld dat vooraan in de lijst gebracht moet worden, wordt bepaald aan de hand van de waarde van reordering_of_pic_nums_idc. Indien de waarde 0 of 1 is geeft dit aan dat we een short-term referentiebeeld gaan verplaatsen en dit wordt dan bepaald aan de hand van abs_diff_pic_num_minus1. Indien de waarde 2 is, geeft dit aan dat we een long-term referentiebeeld gaan verplaatsen en dit wordt bepaald aan de hand van long_term_pic_num. 4. Het referentiebeeld uit stap 3 wordt ingevoegd op positie refidx en wordt verwijderd op de andere positie in de lijst waar het reeds voorkwam. 5. refidx wordt geïncrementeerd en er wordt teruggesprongen naar stap 2. 23

35 Hoofdstuk 5 Decoderen van intergecodeerde beelden in H.264/AVC In Hoofdstuk 3 werden de algemene principes aangegeven i.v.m. het decoderen van intergecodeerde beelden. In dit hoofdstuk gaan we dieper in op hoe dit gebeurt in de H.264/AVC-decoder en hoe de verfijnde technieken leiden tot een sterkere compressie van de bewegende beelden. 5.1 Opsplitsen van macroblokken Zoals in de meeste hedendaagse videocoderingsstandaarden, werkt ook H.264/AVC met macroblokken van 16x16 pixels. Maar gezien er zich in een beeld meestal meerdere objecten bevinden die niet opgebouwd zijn uit blokken van 16x16 pixels, is het in de H.264/AVC mogelijk om voor de bewegingscompensatie macroblokken op te splitsen in kleinere partities die minimaal 4x4 pixels groot zijn x16 8x16 16x8 8x8 Figuur 5-1 Opsplitsing in macroblokpartities 24

36 Het opsplitsen van macroblokken gebeurt in een boomstructuur. Op het eerste niveau kan een 16x16 macroblok opgesplitst worden in ofwel één 16x16 macroblokpartitie, ofwel twee 8x16 macroblokpartities, ofwel twee 16x8 macroblokpartities, ofwel vier 8x8 macroblokpartities, zoals u kunt zien in Figuur 5-1. Indien het macroblok wordt opgesplitst in 8x8 macroblokpartities, kan een tweede niveau van opsplitsing uitgevoerd worden. Elke 8x8 macroblokpartitie kan nog eens verder opgesplitst worden in ofwel één 8x8 sub-macroblokpartitie, ofwel twee 4x8 sub-macroblokpartities, ofwel twee 8x4 sub-macroblokpartities, ofwel vier 4x4 submacroblokpartities, zoals u kunt zien in Figuur Figuur 5-2 Opsplitsing in sub-macroblokpartities Met het opsplitsen van een macroblok moet er natuurlijk voorzichtig worden omgesprongen, want voor elk macroblok worden volgende elementen bepaald: één referentiebeeld per macroblokpartitie (max. 4 per macroblok) één bewegingsvector per (sub-)macroblokpartitie (max. 8 per macroblok) Er wordt echter geprobeerd om het coderen van deze parameters in zo weinig mogelijk bits te doen, door aan de hand van de bewegingsvectoren uit de naburige partities een schatting van de bewegingsvectoren te maken. Voorbeeld 8x8 4x8 8x4 4x4 In Figuur 5-3 ziet u het volledige residu (zonder bewegingscompensatie) tussen twee opeenvolgende beelden. Dit beeld geeft aan op welke plaatsen er zich veranderingen voordoen. Tijdens het opstellen van de gecodeerde stroom, splitste de H.264 referentie-encoder (JM9.0) de macroblokken zo goed mogelijk. Op plaatsen waar er zich weinig beweging voordoet, worden de macroblokken niet opgesplitst en op de plaatsen waar er zich gedetailleerde beweging voordoet, gebeurt de splitsing afhankelijk van het detailniveau. Zo bewegen de lippen heel gedetailleerd en dit reflecteert zich dan ook in de opsplitsing tot op submacroblokniveau. 25

37 Figuur 5-3 Voorbeeld van het opsplitsen in (sub-)macroblokpartities 5.2 Componenten per macroblokpartitie Na het opspitsen van de macroblokken zijn er voor elke (sub-)macroblokpartitie een referentiebeeld en een bewegingsvector beschikbaar. In deze paragraaf geven we aan hoe deze gegevens uit de gecodeerde stroom kunnen gehaald worden. Het referentiebeeld Gezien het referentiebeeld bepaald wordt door zijn positie in de lijst van referentiebeelden, wordt de referentie-index volledig gecodeerd, daarom dat het de moeite kan lonen om deze lijst(en) te herordenen, zodat een vaak voorkomend referentiebeeld een lage index krijgt in de lijst van referentiebeelden. Zo kan een kortere index een kortere code krijgen in de gecodeerde stroom. Deze index is enkel beschikbaar voor elke macroblokpartitie en er zijn dus maximaal 4 referentie-indices beschikbaar per macroblok. Dit betekent dat submacroblokpartities binnen eenzelfde macroblokpartitie allemaal hetzelfde referentiebeeld hebben. 26

38 De bewegingsvector Voor elke (sub-)macroblokpartitie wordt een bewegingsvector bepaald. Gezien een bewegingsvector 2 dimensionaal is en dus bestaat uit een horizontale en een verticale component, zou het coderen van een groot aantal bewegingsvectoren een grote kost zijn. Om deze kost te beperken wordt er eerst een schatting gemaakt voor de bewegingsvector aan de hand van naburige (sub-)macroblokpartities en daarna wordt enkel het verschil met deze schatting aangereikt door de gecodeerde stroom. D B C A Huidige Partitie Figuur 5-4 Bepalen van naburige partities Het schatten van een bewegingsvector gaat als volgt: - Bepaal de naburige partities zoals in Figuur 5-4. Deze mogen een willekeurige vorm hebben van 4x4 tot 16x16 pixels. - Een voorspelling wordt gedaan aan de hand van maximaal 3 naburige bewegingsvectoren. Standaard zijn dit deze van partitie A, B en C. Als C niet beschikbaar is, wordt deze vervangen door D. C B A 0 1 A 0 1 (a) 8x16 macroblockpartitie (b) 16x8 macroblockpartitie Figuur 5-5 Directe voorspelling van bewegingsvectoren - Indien de huidige partitie een 8x16 of een 16x8 macroblokpartitie is, dan is de voorspelling afhankelijk van slechts 1 naburige partitie die wordt bepaald zoals aangegeven in Figuur Anders wordt de mediaan berekend van de bewegingsvectoren in A, B en C. 27

39 Na het voorspellen van de bewegingsvector wordt het verschil met de bedoelde waarde van de bewegingsvector toegevoegd aan de voorspelling en wordt zo de bewegingsvector bekomen. 5.3 Overgeslagen macroblokken en hun componenten Tussen twee opeenvolgende beelden is er soms zeer weinig verschil en zijn er vaak veel macroblokken die onveranderd blijven. Daarom zijn er in H.264/AVC overgeslagen macroblokken of skipped macroblocks voorzien. Deze worden geïdentificeerd in de gecodeerde stroom m.b.v. een parameter skip_run vóór elk macroblok, dat aangeeft hoeveel macroblokken er overgeslagen worden. Verder wordt er nog een onderscheid gemaakt of deze macroblokken voorkomen in een P- slice of in een B-slice. In deze thesis behandelen we enkel de P-skip macroblokken. Voor de naburige macroblokken die allerhande schattingen zullen maken aan de hand van dit macroblok, ziet dit macroblok eruit als een normaal macroblok. Het is opgebouwd uit één partitie van 16x16 pixels en zal een referentiebeeld en een bewegingsvector bevatten. Voor het opstellen van een beeld voor dit macroblok, hebben we vooreerst nood aan een referentiebeeld. Hiervoor wordt het eerste beeld in de lijst van referentiebeelden genomen. Voor het bepalen van de bewegingsvector wordt op een analoge manier tewerk gegaan als in paragraaf 5.2, waarbij de mediaan bepaald B wordt van de bewegingsvectoren uit de naburige partities, D C tenzij partitie A of B niet beschikbaar zijn of het A referentiebeeld van partitie A of B ook het eerste is uit de lijst P-skip van referentiebeelden. In deze gevallen is de bewegingsvector (0, 0). Figuur 5-6 Naburige partities bij P-skip macroblokken 28

40 5.4 Bewegingsvectoren De bewegingsvectoren in H.264/AVC kunnen tot op een kwartpixel nauwkeurig zijn voor de luminantiecomponent en zelfs tot op 1/8 e pixel nauwkeurig voor de chrominantiecomponent. Echter stelt zich wel het probleem dat de waarden op subpixelniveau niet bestaan. Daarom moeten deze berekend worden aan de hand van naburige waarden op volle pixel-posities. Subpixelwaarden bij luminantie Bij het berekenen van de subpixelwaarden bij luminantie wordt er steeds gebruik gemaakt van de volgende 6-tap interpolatiefilter: Filter(a,b,c,d,e,f) = a 5.b + 20.c + 20.d 5.e + f Bij de berekening van halfpixelwaarden kunnen we 3 gevallen onderscheiden. Deze worden besproken aan de hand van Figuur 5-7. A. Een positie die zich tussen twee horizontale volpixels bevindt. De waarde van een dergelijk halfpixel wordt als volgt berekend: A = ( Filter(a 1, a 2, a 3, a 4, a 5, a 6 ) + 16 ) >> 5 B. Een positie die zich tussen twee verticale volpixels bevindt. Dit wordt analoog met A berekend, maar dan verticaal. C. Een positie die zich in het midden tussen 4 volpixels bevindt. Hierbij zal de halfpixelwaarde C afhankelijk zijn van 36 buren. Hiertoe zullen eerst de waarden c i als volgt berekend worden c i = Filter(c i1, c i2, c i3, c i4, c i5, c i6 ) Daarna worden deze 6 verticale halfpixelwaarden, horizontal gefilterd en zo wordt C berekend: C = ( Filter(c 1, c 2, c 3, c 4, c 5, c 6 ) + 512) >> 10 29

41 a 1 a 2 a 3 A a 4 a 5 a 6 b 1 c 11 c 21 c 31 c 41 c 51 c 61 b 2 c 12 c 22 c 32 c 42 c 52 c 62 b 3 B c 13 c 23 c 33 c 43 c 53 c 63 c 1 c 2 c 3 C c 4 c 5 c 6 b 4 c 14 c 24 c 34 c 44 c 54 c 64 b 5 c 15 c 25 c 35 c 45 c 55 c 65 b 6 c 16 c 26 c 36 c 46 c 56 c 66 = volle pixelpositie = halfpixelpositie Figuur 5-7 Berekenen van halfpixelwaarden in H.264/AVC Het berekenen van de kwartpixelwaarden gebeurt aan de hand van de volpixelwaarden en de halfpixelwaarden. Er wordt telkens een gemiddelde genomen tussen twee van deze waarden. Dit gebeurt zoals aangegeven in Figuur 5-8. = volle pixelpositie = halfpixelpositie = ¼ pixelpositie Figuur 5-8 Berekenen van kwartpixelwaarden in H.264/AVC 30

42 5.5 Subpixelwaarden bij chrominantie Hoewel het berekenen van een subpixelwaarde bij de chrominantie met een grotere precisie gebeurt dan bij de luminantie, is het berekenen van deze waarden heel wat eenvoudiger. Dit wordt geïllustreerd aan de hand van Figuur 5-9: Indien gegeven: A,B,C,D de naburige volpixelwaarden. (x,y) de subpixelcoördinaten van de gewenste subpixelwaarde. Dan wordt de waarde van het subpixel S als volgt berekend: S = ((8-x) * (8-y) * A + x * (8-y) * B + (8-x) * y * C + X * y * D + 32 ) >> 6 A B y 8-y x 8-x S C D Figuur 5-9 Berekenen van subpixelwaarden bij chrominantie in H.264/AVC 31

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

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

Nadere informatie

Implementatie en optimalisatie van een robuuste H.264/AVC decoder

Implementatie en optimalisatie van een robuuste H.264/AVC decoder Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Implementatie en optimalisatie van een robuuste H.264/AVC decoder door Tom Pycke

Nadere informatie

Ontwikkeling van DirectShow-filters voor de visualisatie van een H.264/AVC-bitstroom

Ontwikkeling van DirectShow-filters voor de visualisatie van een H.264/AVC-bitstroom Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Ontwikkeling van DirectShow-filters voor de visualisatie van een H.264/AVC-bitstroom

Nadere informatie

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

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

Nadere informatie

Digitale video: een overzicht van de JVT/AVC-standaard

Digitale video: een overzicht van de JVT/AVC-standaard Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Digitale video: een overzicht van de JVT/AVC-standaard door Mieke Depaemelaere

Nadere informatie

Ontwikkeling van een tool voor de analyse van schaalbaar gecodeerde videostromen

Ontwikkeling van een tool voor de analyse van schaalbaar gecodeerde videostromen Ontwikkeling van een tool voor de analyse van schaalbaar gecodeerde videostromen Sebastiaan Van Leuven Begeleider: Koen De Wolf Promotor: prof. dr. ir. Rik Van de Walle lic. Koen De Wolf Scriptie ingediend

Nadere informatie

Video. Multimedia Rein van den Boomgaard Universiteit van Amsterdam

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

Nadere informatie

Analyse van videosequenties, gecomprimeerd met H.264/AVC, voor videobewakingssystemen

Analyse van videosequenties, gecomprimeerd met H.264/AVC, voor videobewakingssystemen Analyse van videosequenties, gecomprimeerd met H.264/AVC, voor videobewakingssystemen Johannes De Smedt Promotor: prof. dr. ir. Rik Van de Walle Begeleiders: Chris Poppe, Sarah De Bruyne Scriptie ingediend

Nadere informatie

Detectie van bewegende objecten in videosequenties, gecomprimeerd met H.264/AVC, voor videobewakingssystemen

Detectie van bewegende objecten in videosequenties, gecomprimeerd met H.264/AVC, voor videobewakingssystemen Detectie van bewegende objecten in videosequenties, gecomprimeerd met H.264/AVC, voor videobewakingssystemen Sammy Lievens Promotor: prof. dr. ir. Rik Van de Walle Begeleiders: Chris Poppe, Sarah De Bruyne

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

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

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

Nadere informatie

AVCHD. AVCHD Workshop. 2012 Hans Dorland

AVCHD. AVCHD Workshop. 2012 Hans Dorland AVCHD AVCHD Workshop Inzicht Wie monteert* met DV? Wie monteert* met HDV? Wie monteert met AVCHD? *en overweegt montage met AVCHD? Overzicht digitale video 1995 DV 2005 HDV 2012 AVCHD Wat is HD video?

Nadere informatie

Bewegingscompensatie en Reconstructie van H.264/AVC-gecodeerde Videobeelden op de GPU

Bewegingscompensatie en Reconstructie van H.264/AVC-gecodeerde Videobeelden op de GPU Faculteit Ingenieurswetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Bewegingscompensatie en Reconstructie van H.264/AVC-gecodeerde Videobeelden op de

Nadere informatie

Hardware/Software Co-design van de H.264/AVC-codec

Hardware/Software Co-design van de H.264/AVC-codec Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Hardware/Software Co-design van de H.264/AVC-codec door Jan De Cock & Stijn Notebaert

Nadere informatie

Referentie Handleiding

Referentie Handleiding Version 1.1.5 Referentie Handleiding DiscretePhoton H.264 encoder DiscretePhoton www.discretephoton.com Referentie Handleiding Over DiscretePhoton H.264-encoder DiscretePhoton H.264 encoder Windows versie

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

Logoinsertie via transcodering voor gecomprimeerde H.264/AVC-videostromen

Logoinsertie via transcodering voor gecomprimeerde H.264/AVC-videostromen Logoinsertie via transcodering voor gecomprimeerde H.264/AVC-videostromen Dieter Vergote Promotoren: prof. dr. ir. Rik Van de Walle, Davy De Schrijver Begeleider: dr. ir. Jan De Cock Masterproef ingediend

Nadere informatie

QR-code op aanvoerbrief 2.xx.0: Specificaties

QR-code op aanvoerbrief 2.xx.0: Specificaties QR-code op aanvoerbrief 2.xx.0: Specificaties Door: Bert Velthuijs Datum 1e versie: 5 april 2012 (versie 0.xx) Datum laatste wijziging 20 september 2012 Huidige Versie: 2.xx.0 Wijzigingen 19 juli 2012

Nadere informatie

Spatio-temporele objectdetectie in schaalbare videostromen

Spatio-temporele objectdetectie in schaalbare videostromen Spatio-temporele objectdetectie in schaalbare videostromen Lander Verhack Promotor: prof. dr. ir. Rik Van de Walle Begeleider: Sarah De Bruyne Masterproef ingediend tot het behalen van de academische graad

Nadere informatie

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

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

Nadere informatie

Ontwerp van videostreamer voor geavanceerde MPEG-4 video

Ontwerp van videostreamer voor geavanceerde MPEG-4 video Faculteit Toegepaste Wetenschappen Vakgroep Informatietechnologie Voorzitter: Prof. Dr. Ir. P. LAGASSE Ontwerp van videostreamer voor geavanceerde MPEG-4 video door Kristof DEPYPERE Promotoren: Prof. dr.

Nadere informatie

invloed van herschaling bij het comprimeren van HD-videobeelden

invloed van herschaling bij het comprimeren van HD-videobeelden Faculteit Ingenieurswetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. Dr. Ir. J. Van Campenhout invloed van herschaling bij het comprimeren van HD-videobeelden door Timothy Suy

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

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

Nadere informatie

Implementeren van een fractaalgebaseerde videocodec

Implementeren van een fractaalgebaseerde videocodec Faculteit Ingenieurswetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Implementeren van een fractaalgebaseerde videocodec door Hans Coppens Promotor:

Nadere informatie

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

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

Nadere informatie

Methoden voor het verwerken van digitale video in de YCoCg-R-kleurenruimte met behulp van shaders

Methoden voor het verwerken van digitale video in de YCoCg-R-kleurenruimte met behulp van shaders Faculteit Ingenieurswetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Methoden voor het verwerken van digitale video in de YCoCg-R-kleurenruimte met behulp

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

OPTIMALISATIE VAN MPEG-4-WAVELETCODE VOOR DE TRIMEDIAPROCESSOR

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

Nadere informatie

Les 7 & 8: MSW Logo Mieke Depaemelaere

Les 7 & 8: MSW Logo Mieke Depaemelaere Faculteit Psychologische en Pedagogische Wetenschappen ACADEMISCHE INITIËLE LERARENOPLEIDING Academiejaar 2001-2002 Vakdidactiek informatica : praktijkgerichte seminaries Lesgevers : Prof. A. Hoogewijs

Nadere informatie

Theoretische studie over de invloed van pakketverlies op de beeldkwaliteit van gestreamde MPEG-video

Theoretische studie over de invloed van pakketverlies op de beeldkwaliteit van gestreamde MPEG-video Faculteit Toegepaste Wetenschappen Vakgroep Informatietechnologie Voorzitter: Prof. dr. ir.p.lagasse Theoretische studie over de invloed van pakketverlies op de beeldkwaliteit van gestreamde MPEG-video

Nadere informatie

Videoclub Bedum. Video-instellingen

Videoclub Bedum. Video-instellingen Videoclub Bedum Video-instellingen Videoclub Bedum Video-instellingen Welke gebruik je en wat betekent dat? Afspraak: Afspraak: De Videoclub Bedum filmt Afspraak: De Videoclub Bedum filmt in Full HD Full

Nadere informatie

Hardware-ontwerp van een bewegingsschatter voor videocompressie

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

Nadere informatie

5,7. Samenvatting door een scholier 903 woorden 28 september keer beoordeeld. Informatica. Samenvatting Informatica Hoofdstuk 2

5,7. Samenvatting door een scholier 903 woorden 28 september keer beoordeeld. Informatica. Samenvatting Informatica Hoofdstuk 2 Samenvatting door een scholier 903 woorden 28 september 2006 5,7 24 keer beoordeeld Vak Informatica Samenvatting Informatica Hoofdstuk 2 2.1 Teken en betekenis Uit welke 2 delen bestaat informatie? Betekenis

Nadere informatie

Opstellen van objectieve kwaliteitsmaten voor videocodering

Opstellen van objectieve kwaliteitsmaten voor videocodering Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Opstellen van objectieve kwaliteitsmaten voor videocodering door Eveline Goegebeur

Nadere informatie

S u b n e t t e n. t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000.

S u b n e t t e n. t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000. S u b n e t t e n t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000 Part 1 Inhoud Wat is een subnet?... 2 Waarom?... 3 Het begin.... 3 Een voorbeeld...

Nadere informatie

Analyse van pixelgroepering en antiblokfiltering in een GPU-gedreven H.264/AVC-decoder

Analyse van pixelgroepering en antiblokfiltering in een GPU-gedreven H.264/AVC-decoder Faculteit Ingenieurswetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J. Van Campenhout Analyse van pixelgroepering en antiblokfiltering in een GPU-gedreven H.264/AVC-decoder

Nadere informatie

Doelstelling: Bijsturing van de opvattingen van de leerlingen met betrekking tot magnetische eigenschappen

Doelstelling: Bijsturing van de opvattingen van de leerlingen met betrekking tot magnetische eigenschappen 6-8 jaar Wetenschappelijk inhoud: Natuurkunde Beoogde concepten: Magnetische eigenschappen van verschillende voorwerpen, intensiteit van een magnetisch vel. Beoogde leeftijdsgroep: Leerlingen van 8 jaar

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

Populaties beschrijven met kansmodellen

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

Nadere informatie

Logistiek management in de gezondheidszorg

Logistiek management in de gezondheidszorg Katholieke Universiteit Leuven Faculteit Geneeskunde Departement Maatschappelijke Gezondheidszorg Centrum voor Ziekenhuis- en Verplegingswetenschap Master in management en beleid van de gezondheidszorg

Nadere informatie

HOOFDSTUK VII REGRESSIE ANALYSE

HOOFDSTUK VII REGRESSIE ANALYSE HOOFDSTUK VII REGRESSIE ANALYSE 1 DOEL VAN REGRESSIE ANALYSE De relatie te bestuderen tussen een response variabele en een verzameling verklarende variabelen 1. LINEAIRE REGRESSIE Veronderstel dat gegevens

Nadere informatie

Technische Normen en Richtlijnen voor de Set Top Box Bedoeld voor DVB-T ontvangst

Technische Normen en Richtlijnen voor de Set Top Box Bedoeld voor DVB-T ontvangst Technische Normen en Richtlijnen voor de Set Top Box Bedoeld voor DVB-T ontvangst Focuspunt: Digitale televisie signaalontvangst Procesgebied: Willemstad, Curaçao Versie 1c: September 2011 INHOUDSOPGAVE

Nadere informatie

Statistiek buitenlandse handel in goederen: een verfijnde compilatiemethode

Statistiek buitenlandse handel in goederen: een verfijnde compilatiemethode Integrale versie Statistiek buitenlandse handel in goederen: een verfijnde compilatiemethode 1. Inleiding Vanaf de publicatie van 14 augustus 2017, met de meest recente cijfers van de maand mei 2017 en

Nadere informatie

Qlik Sense Healthcare. Document 16052

Qlik Sense Healthcare. Document 16052 Qlik Sense Healthcare Document 16052 Inhoud 1. Introductie... 3 1.1 Qlik Sense... 3 1.2 Qlik Sense Healthcare... 3 1.3 Qlik Sense als product... 3 2 Overview healthcare module... 4 2.1 De opbouw van de

Nadere informatie

BEKNOPTE HANDLEIDING A N A L Y T I S C H

BEKNOPTE HANDLEIDING A N A L Y T I S C H BEKNOPTE HANDLEIDING A N A L Y T I S C H 1 Algemene werking Wings ondersteunt twee verschillende soorten analytische opvolging. De eerste analytische uitsplitsing is de traditionele op kostenplaats of

Nadere informatie

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

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

Nadere informatie

Het minimale aantal sleutels op niveau h is derhalve

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

Nadere informatie

Departement industriële wetenschappen en technologie

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

Nadere informatie

De keuzestructuur. Versie DD

De keuzestructuur. Versie DD De keuzestructuur Versie DD Tot nu toe Programma in rechte lijn = sequentie of opeenvolging Nieuw Vertakking in parcours = selectie of keuzestructuur Controlestructuren Opeenvolging = sequentie Keuze =

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

Wetenschappelijk Instituut Volksgezondheid. Verwerking van gecensureerde waarden

Wetenschappelijk Instituut Volksgezondheid. Verwerking van gecensureerde waarden Wetenschappelijk Instituut Volksgezondheid Dienst Kwaliteit van medische laboratoria Verwerking van gecensureerde waarden 1 ste versie Pr. Albert (februari 2002) 2 de versie Aangepast door WIV (toepassingsdatum:

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

3. Structuren in de taal

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

Nadere informatie

Ecologische Monitoring Kustverdedigingsproject Oostende. (t 0 -situatie, fase 3) AANVULLENDE STUDIE:

Ecologische Monitoring Kustverdedigingsproject Oostende. (t 0 -situatie, fase 3) AANVULLENDE STUDIE: Ecologische Monitoring Kustverdedigingsproject Oostende (t 0 -situatie, fase 3) AANVULLENDE STUDIE: KWANTIFICERING EN KWALIFICERING VAN ORGANISCH MATERIAAL IN MARIENE SEDIMENTEN: HUN ONDERLINGE RELATIES

Nadere informatie

Programmeren in C++ Efficiënte zoekfunctie in een boek

Programmeren in C++ Efficiënte zoekfunctie in een boek Examen Software Ontwikkeling I 2e Bachelor Informatica Faculteit Wetenschappen Academiejaar 2010-2011 21 januari, 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief de hints/opmerkingen)!

Nadere informatie

Face detection in color images Verslag. Domien Nowicki 0522689 Bjorn Schobben 0522953

Face detection in color images Verslag. Domien Nowicki 0522689 Bjorn Schobben 0522953 Face detection in color images Verslag Domien Nowicki 0522689 Bjorn Schobben 0522953 Inhoudstabel Inleiding... 3 Gezichtsdetectiealgoritme...3 Gezichtsmasker aanmaken...4 Belichting compensatie... 5 Niet-lineaire

Nadere informatie

Geheugenbeheer. ICT Infrastructuren 2 december 2013

Geheugenbeheer. ICT Infrastructuren 2 december 2013 Geheugenbeheer ICT Infrastructuren 2 december 2013 Doelen van geheugenbeheer Reloca>e (flexibel gebruik van geheugen) Bescherming Gedeeld/gemeenschappelijk geheugen Logische indeling van procesonderdelen

Nadere informatie

IEEE 1394 firewire. Jan Genoe KHLim. I-link DV (digital video)

IEEE 1394 firewire. Jan Genoe KHLim. I-link DV (digital video) IEEE 1394 firewire I-link DV (digital video) Jan Genoe KHLim 1 Traditionele video bewerkingswerkwijze In draagbare video camera's worden beelden reeds lang aan de hand van CCD opgenomen, dit wil zeggen

Nadere informatie

Classification - Prediction

Classification - Prediction Classification - Prediction Tot hiertoe: vooral classification Naive Bayes k-nearest Neighbours... Op basis van predictor variabelen X 1, X 2,..., X p klasse Y (= discreet) proberen te bepalen. Training

Nadere informatie

Percentage afwijkingen groter dan vijf decibel

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

Nadere informatie

Inhoudsopgave. Deel 1 Windows Media Player 11

Inhoudsopgave. Deel 1 Windows Media Player 11 Inhoudsopgave Voorwoord...13 Introductie Visual Steps...14 Wat heeft u nodig?...15 Hoe werkt u met dit boek?...16 De volgorde van lezen...17 De cd-rom bij dit boek...17 De schermafbeeldingen...17 Hoe verder

Nadere informatie

Inleiding statistiek

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

Nadere informatie

Bijlage: Toelichting gebruikte terminologie

Bijlage: Toelichting gebruikte terminologie Bijlage: Toelichting gebruikte terminologie Er zijn veel mogelijkheden op het gebied van camerabewaking en daarom is het soms erg lastig om te weten waardoor er verschillen in kwaliteit en prijs ontstaan.

Nadere informatie

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

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

Nadere informatie

What s new versie 3.32 P1 van 11/04/16

What s new versie 3.32 P1 van 11/04/16 Inhoud Gepersonaliseerde parameters kunnen gebruiken in templates voor doorsnede generatie... 2 Rapporteren informatie PART tabel (3.32 P1-2942)... 6 BUGFIXES & BETTERS JoPPS 3.32 P1... 9 Gepersonaliseerde

Nadere informatie

Digitale opslag. Wat als er geen tape meer bestaat? 20 maart 2013

Digitale opslag. Wat als er geen tape meer bestaat? 20 maart 2013 Digitale opslag Wat als er geen tape meer bestaat? 20 maart 2013 Digitale opslag Het einde van de tape Kostprijs Betrouwbaarheid Compressie De ideale oplossing Gratis kan ook Het einde van de tape Sinds

Nadere informatie

Robuustheid regressiemodel voor kapitaalkosten gebaseerd op aansluitdichtheid

Robuustheid regressiemodel voor kapitaalkosten gebaseerd op aansluitdichtheid Robuustheid regressiemodel voor kapitaalkosten gebaseerd op aansluitdichtheid Dr.ir. P.W. Heijnen Faculteit Techniek, Bestuur en Management Technische Universiteit Delft 22 april 2010 1 1 Introductie De

Nadere informatie

Edifact / IHFN Reference guide 7/10/2004. Identificatie

Edifact / IHFN Reference guide 7/10/2004. Identificatie Identificatie Type : Documentatie Language : Edifact / InHouse File Normalised Date : 1/08/2000 Analist : TO08 - Jérôme Decasteau Inleiding Dit document is bestemd voor alle personen die de Edifact / IHFN

Nadere informatie

Beeldcompressie. VWO Masterclass 08. 21 oktober 2008

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

Nadere informatie

Samenvatting van videosequenties m.b.v. sleutelbeelden Hiêp Quang Luong

Samenvatting van videosequenties m.b.v. sleutelbeelden Hiêp Quang Luong Samenvatting eindverhandeling: Samenvatting van videosequenties m.b.v. sleutelbeelden Hiêp Quang Luong Recente ontwikkelingen in de multimedia compressietechnologie, gekoppeld aan een beduidende groei

Nadere informatie

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

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

Nadere informatie

-1- (Tijdschrift NERG, vol 60(3), 1995

-1- (Tijdschrift NERG, vol 60(3), 1995 BASIS PRINCIPES IN (MPEG) VIDEOCODERING 1 Dr.ir. Reginald L. Lagendijk Technische Universiteit Delft, Faculteit der Elektrotechniek, Vakgroep Informatietheorie, Mekelweg 4, 2628 CD Delft The principles

Nadere informatie

INHOUD. Ten geleide 13. 1 Excel 2007-2010 Basis 15

INHOUD. Ten geleide 13. 1 Excel 2007-2010 Basis 15 INHOUD Ten geleide 13 1 Excel 2007-2010 Basis 15 1.1 Inleiding 15 1.2 Excel 2007-2010 samengevat 15 1.2.1 Configuratie instellen en de werkomgeving aanpassen 15 1.2.1.1 Een knop toevoegen aan de werkbalk

Nadere informatie

Exponentiële Functie: Toepassingen

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

Nadere informatie

FILMGROEP SPECTRUM _ TIPS 6. Frame-Rates versus Clip speed: a. Frame rate (fps):

FILMGROEP SPECTRUM _ TIPS 6. Frame-Rates versus Clip speed: a. Frame rate (fps): Frame-Rates versus Clip speed: a. Frame rate (fps): FILMGROEP SPECTRUM _ TIPS 6 Het aantal stills of fotobeelden er worden vastgelegd per seconde gedurende een clip. De minimale frame rate voor een vloeiende

Nadere informatie

Plan van Aanpak. Christophe Deloo, Roy Straver & Machiel Visser. Versie 4 (26-06-2010)

Plan van Aanpak. Christophe Deloo, Roy Straver & Machiel Visser. Versie 4 (26-06-2010) Plan van Aanpak Christophe Deloo, Roy Straver & Machiel Visser Versie 4 (26-06-2010) Inhoudsopgave Voorwoord... 2 1 Inleiding... 3 1.1 Aanleiding... 3 1.2 Accordering en bijstelling... 3 1.3 Toelichting

Nadere informatie

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

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

Nadere informatie

Hoe kijken wij en welke informatie wordt doorgegeven aan onze hersenen. Prof. dr. Maarten Kamermans

Hoe kijken wij en welke informatie wordt doorgegeven aan onze hersenen. Prof. dr. Maarten Kamermans Hoe kijken wij en welke informatie wordt doorgegeven aan onze hersenen Prof. dr. Maarten Kamermans Het oog is geen camera Als je een camera beweegt krijg je een onscherpe foto Als je de ogen stil zet zie

Nadere informatie

Principe Maken van een Monte Carlo data-set populatie-parameters en standaarddeviaties standaarddeviatie van de bepaling statistische verdeling

Principe Maken van een Monte Carlo data-set populatie-parameters en standaarddeviaties standaarddeviatie van de bepaling statistische verdeling Monte Carlo simulatie In MW\Pharm versie 3.30 is een Monte Carlo simulatie-module toegevoegd. Met behulp van deze Monte Carlo procedure kan onder meer de betrouwbaarheid van de berekeningen van KinPop

Nadere informatie

Technologie verklaard LEGRIA HF R48, LEGRIA HF R46, LEGRIA HF R406 en LEGRIA HF G25

Technologie verklaard LEGRIA HF R48, LEGRIA HF R46, LEGRIA HF R406 en LEGRIA HF G25 Technologie verklaard LEGRIA HF R48, LEGRIA HF R46, LEGRIA HF R406 en LEGRIA HF G25 Live Streaming (LEGRIA HF R48 en LEGRIA HF R46) De nieuwe LEGRIA HF R-serie stelt gebruikers in staat hun video-opnamen

Nadere informatie

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd. BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is

Nadere informatie

Opleiding Master in de Fysica en Sterrenkunde. Procedure voor de evaluatie van de masterproef

Opleiding Master in de Fysica en Sterrenkunde. Procedure voor de evaluatie van de masterproef Opleidingsraad van 5/3/2013. Opleiding Master in de Fysica en Sterrenkunde Procedure voor de evaluatie van de masterproef De evaluatieprocedure is in voege vanaf academiejaar 2013-14. Voor het academiejaar

Nadere informatie

Regionale Verschillen in Loonkosten en Arbeidsproductiviteit. Jozef Konings & Luca Marcolin

Regionale Verschillen in Loonkosten en Arbeidsproductiviteit. Jozef Konings & Luca Marcolin Naamsestraat 61 bus 3550 B-3000 Leuven BELGIUM Tel. 032 16 326661 vives@kuleuven.be VIVES Briefings 2013 24 MEI Regionale Verschillen in Loonkosten en Arbeidsproductiviteit Jozef Konings & Luca Marcolin

Nadere informatie

Let op dat de scoping regels gerespecteerd blijven; het volgende voorbeeld mag geen fout melden.

Let op dat de scoping regels gerespecteerd blijven; het volgende voorbeeld mag geen fout melden. Vrije Universiteit Brussel Faculteit Wetenschappen Vakgroep Computerwetenschappen Academiejaar 2009 2010: tweede examenzittijd Interpretatie van Computerprogrammaʼs I schriftelijke test Voorafgaandelijk:

Nadere informatie

Herconfigureerbare Hardware in Ieders Bereik

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

Nadere informatie

Detectie van (het begin van) een calamiteit

Detectie van (het begin van) een calamiteit Detectie van (het begin van) een calamiteit Raak MKB Wireless Sensortechnologie bij Calamiteiten Enschede, 20 januari 2011 Auteur Ir. P. S. Griffioen lectoraat Ambient Intelligence Samenvatting In het

Nadere informatie

EUROPESE DIGITALE UITZENDSTANDAARD MPEG-2

EUROPESE DIGITALE UITZENDSTANDAARD MPEG-2 EUROPESE DIGITALE UITZENDSTANDAARD MPEG-2 I. INLEIDING MPEG is de afkorting van 'Moving Pictures Expert Group' en de bijnaam voor de 'Working Group (WG)11' van de 'Sub Committee (SC)29' van de 'Joint Technical

Nadere informatie

HTML. Media. Hans Roeyen V 3.0

HTML. Media. Hans Roeyen V 3.0 Media Hans Roeyen V 3.0 12 maart 2015 Inhoud 1. (Multi)Media op websites... 3 2. Flash en Websites... 4 3. Video op je website... 4 3.1. YouTube insluiten op de pagina... 4 3.2. Video zonder YouTube...

Nadere informatie

Gebruikershandleiding

Gebruikershandleiding Release 1.3 Gebruikershandleiding Datum: oktober 2012 All rights reserved Alle rechten zijn voorbehouden. Deze documentatie blijft eigendom van Ternair Software Solutions b.v. en is uitsluitend bedoeld

Nadere informatie

Meer Blokken. 1. Dit is een functie genaamd Maximum, die twee argumenten heeft: number1 en number2.

Meer Blokken. 1. Dit is een functie genaamd Maximum, die twee argumenten heeft: number1 en number2. Meer Blokken Voorkennis: SuperDojo, Snake Leerdoelen: Meer Blokken Introductie Meer Blokken zijn Scratch s manier van functies. Functies zijn een heel belangrijk concept in alle programmeertalen. Het staat

Nadere informatie

Verschillende normen voor de bepaling van het rendement van een inductiemachine

Verschillende normen voor de bepaling van het rendement van een inductiemachine Verschillende normen voor de bepaling van het rendement van een inductiemachine Focus Voor elke motor die op de markt gebracht wordt, dienen enkele kengetallen te worden gegeven als maat voor de performantie

Nadere informatie

Feedback Statement Concept Beleidsregel aangaande de definitie en de berekening van een shortpositie in de zin van de Wft

Feedback Statement Concept Beleidsregel aangaande de definitie en de berekening van een shortpositie in de zin van de Wft Feedback Statement Concept Beleidsregel aangaande de definitie en de berekening van een shortpositie in de zin van de Wft Autoriteit Financiële Markten De AFM bevordert eerlijke en transparante financiële

Nadere informatie

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

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

Nadere informatie

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

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

Nadere informatie

Uitgebreid voorstel Masterproef Informatica. Titel van het project: Rolnummerherkenning van op een kraan

Uitgebreid voorstel Masterproef Informatica. Titel van het project: Rolnummerherkenning van op een kraan HoGent Uitgebreid voorstel Masterproef Informatica Titel van het project: Rolnummerherkenning van op een kraan Datum: 17/11/12 Naam student: Cédric Verstraeten Interne promotor: Tim De Pauw In samenwerking

Nadere informatie

HOOFDSTUK 1: Performantie van webgebaseerde toepassingen

HOOFDSTUK 1: Performantie van webgebaseerde toepassingen HOOFDSTUK 1: Performantie van webgebaseerde toepassingen 1. Basisprincipes componenten en tijden is totale antwoordtijd is transfertijd is transfertijd http-request is transfertijd http-reply (data) is

Nadere informatie

Sinds de jaren 70 zijn wetenschappers bezorgd om de vervuiling van onze oceanen door allerhande plastiek afval. De laatste 10 jaar loopt het echt uit

Sinds de jaren 70 zijn wetenschappers bezorgd om de vervuiling van onze oceanen door allerhande plastiek afval. De laatste 10 jaar loopt het echt uit Sinds de jaren 70 zijn wetenschappers bezorgd om de vervuiling van onze oceanen door allerhande plastiek afval. De laatste 10 jaar loopt het echt uit de hand en wetenschappers schatten dat er jaarlijks

Nadere informatie

Lineaire algebra 1 najaar Lineaire codes

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

Nadere informatie

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

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

Nadere informatie

Adobe After Effects CS3 gevorderd: stabilizatie & time warp

Adobe After Effects CS3 gevorderd: stabilizatie & time warp Adobe After Effects CS3 gevorderd: stabilizatie & time warp Door Jeroen Debonnet Oktober 2009 ViewIt 1 Inhoudstafel Adobe After Effects CS3 gevorderd: stabilizatie & time warp... 1 1 Inhoudstafel... 1

Nadere informatie