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

Maat: px
Weergave met pagina beginnen:

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

Transcriptie

1 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 door Philippe De Neve Promotoren: Prof. dr. ir. P. DEMEESTER en Porf. dr. ir. I.MOERMAN Scriptiebegeleiders: ir. B. TRUYTS en ir. F. VAN QUICKENBORNE Scriptie ingediend tot het behalen van de academische graad van burgerlijk elektrotechnisch ingenieur Academiejaar

2 Theoretische studie over de invloed van pakketverlies op de beeldkwaliteit van gestreamde MPEG-video door Philippe De Neve Scriptie ingediend tot het behalen van de academische graad van burgerlijk elektrotechnisch ingenieur Academiejaar Promotoren: Prof. dr. ir. P. DEMEESTER en Porf. dr. ir. I.MOERMAN Scriptiebegeleiders: ir. B. TRUYTS en ir. F. VAN QUICKENBORNE Faculteit Toegepaste Wetenschappen Universiteit Gent Vakgroep Informatietechnologie Voorzitter: Prof. dr. ir. P.LAGASSE Samenvatting Binnen dit afstudeerwerk wordt er nagegaan in welke mate het streamen van videobestanden, gecodeerd met de MPEG-1 codec, over een netwerk dat gekenmerkt wordt door pakketverlies de kwaliteit van de videosequentie gaat beïnvloeden. Meer bepaald wordt er gekeken naar de aard en de duur van de beschadiging, de tijd tussen de beschadigingen en de kwaliteit. Er wordt onderzocht in welke mate de karakteristieken van de MPEG-1 codering en van het netwerk invloed hebben op de beschadiging na pakketverlies. Ook werd er, als deel van de opdracht, een simulatieprogramma ontworpen dat MPEG-1 videostreams kan beschadigen volgens instelbare parameters zoals de pakketlengte, het pakketizatieschema en het pakketverlies. Trefwoorden MPEG, pakketverlies, video, netwerksimulatie, streamen 2

3 Inhoudsopgave Hoofdstuk 1 Inleiding... 7 Hoofdstuk 2 MPEG standaard Videocompressie Spatiale redundantie reductie Temporele redundantie reductie Entropie Coding Generieke encoder MPEG standaard MPEG-1 standaard MPEG System Layer Videostructuur Coderen van beelden MPEG MPEG-2 samengevat Verschillen tussen MPEG-1 en MPEG Hoofdstuk 3 Probleemstelling & methodologie Probleemstelling Situering Parameters Methodologie

4 Synchronisatieprobleem Hoofdstuk 4 Software Tools: JND en VisualDropSim VirtualDub VisualDropSim Model Functionaliteit Statistisch model Pakketizatie methode GUI Input & Output JNDmetrix JND-waarden Hoofdstuk 5 Resultaten Codering en netwerk parameters Invloed van de pakketlengte Invloed van de bitsnelheid Invloed van de GOP-structuur Nabeschouwing Hoofdstuk 6 Conclusies Hoofdstuk 7 Uitbreiding

5 Lijst figuren Figuur 1: Standaarden en bitsnelheden... 8 Figuur 2: Block diagram van een DPCM codec Figuur 3: De 64 2-D cosinusfuncties van de 8 8 DCT Figuur 4: Afronden van gekwantificeerde DCT coëfficiënten voor (a) intra coding en (b) voor non-intra coding Figuur 5: Het huidig en vorig frame in een zoek venster Figuur 6: Generieke interframe predictieve encoder Figuur 7: Structuur van een ISO stream Figuur 8: MPEG system structuur Figuur 9: System layer pak en pakket structuur Figuur 10: Een typische GOP in afspeelvolgorde Figuur 11: Positionering van chrominantie en luminantie samples Figuur 12: Mogelijke schikking van 6 slices in een beeld Figuur 13: De verschillende lagen van een videostream Figuur 14: Zigzag ordening van de DCT coëfficiënten in een blok Figuur 15: Typische fouten in een beschadigd frame Figuur 16: GOP-structuur: 9/3 en 6/ Figuur 17: JND score verloop bij beschadiging van enkele I-frames Figuur 18: Mogelijke meetopstellingen Figuur 19: Meetopstelling Figuur 20: JND-scores: met en zonder synchronisatie Figuur 21: Voorbeeld van een VirtualDub script bestand Figuur 22: Model VisualDropSim Figuur 23: Voorbeeld van een door VisualDropSim gegenereerd batch bestand Figuur 24: Statistisch model: bursty loss Figuur 25: Pakketizatieschema: UDP Figuur 26: Pakketizatieschema: UDP no headers

6 Figuur 27: Pakketizatieschema: RFC Figuur 28: Graphical User Interface van VisualDropSim Figuur 29: 1 ste deel van het output log bestand Figuur 30: 2 de deel van het output log bestand Figuur 31: 3 de deel van het output log bestand Figuur 32: Aantal pakketten van 1500 bytes nodig voor verschillende types frames bij verschillende bitsnelheden voor het UDP no headers packetizatieschema Figuur 33: Verhouding tussen I/P/B pakketten bij verschillende bitsnelheden Figuur 34: Aantal pakketten nodig voor de 3 types frames bij verschillende bitsnelheden 64 Figuur 35: JND-score ifv pakketlengte bij 2500 bit/s Figuur 36: Gemiddelde tijd (in frames) van periodes zonder schade in functie van de pakketlengte Figuur 37: Frame Damage(%) in functie van pakketverlies voor verschillende pakketlengtes Figuur 38: Frame Loss in functie van het aantal pakketten bij verschillende pakket verliezen (1-(1-p) aantal pakketten ) Figuur 39: Invloed van de pakketlengte bij verschillende bitsnelheden Figuur 40: JND-scores bij verschillende bitsnelheden Figuur 41: Time No Loss bij verschillende bitsnelheden Figuur 42: Gemiddelde duur van Loss periodes Figuur 43: Frame Damage bij verschillende bitsnelheden Figuur 44: JND & Frame Damage in functie van GOP-structuur Figuur 45: Gemiddelde JND-score per beschadigd frame voor verschillende GOPstructuren Figuur 46: JND-score in functie van de Frame Damage met elk beschadigd frame een score van 12 JND Figuur 47: Time Loss en Time No Loss in functie van de GOP-structuur

7 Hoofdstuk 1 Inleiding In de wereld van de telecommunicatie en multimedia, waar bandbreedte een belangrijke beperkende factor is, zijn digitale videocompressietechnieken een belangrijk onderwerp van onderzoek geweest. Een kleine berekening 1 toont snel aan dat de nodige opslagruimte voor niet gecomprimeerde video ongeveer 250Mbit/s bedraagt. Wie een speelfilm van een 120 minuten zou willen opslaan op zijn pc, zou voor deze bitsnelheid een harde schijf nodig hebben van maar liefst 1.8Tbit. Er is dus duidelijk nood aan goede compressietechnieken om die hoge bitsnelheid te reduceren tot een aanvaardbaar niveau. Waarbij met aanvaardbaar wordt bedoeld: tot een niveau compatibel met de huidige technologie en opslagcapaciteiten. Verschillende compressietechnieken werden in het verleden ontworpen, allen met een eigen doel. Zo werd in 89 de H.261 [3][12] standaard ontwikkeld voor video-conferencing applicaties met het oog op kleine bitsnelheden (p 64kbit/s met p gaande van 1 tot 30) voor transport over ISDN netwerken. Het succes van deze standaard was een mijlpaal voor het coderen van video aan lage bitsnelheden met redelijke kwaliteit. Deze standaard ligt dan ook aan de basis van de MPEG standaard. Begin de jaren 90 is de Motion Picture Experts Group gestart met onderzoek naar codeertechnieken voor het opslaan van video. Het doel was de ontwikkeling van een codec die diende in staat te zijn video te encoderen voor opslag op harde schijven met een performantie die vergelijkbaar is met analoge VHS. Hierbij werd de basisgedachte van de (bits/s) =720 (pixels/line) * 576 (active lines/frame) * 25 (frames/s) * 8 (bits/pixel) * 3(RGB) 7

8 H.261 standaard gebruikt als beginpunt in het ontwerpen van de codec. De eerste generatie MPEG, ISO11172 of ook wel MPEG-1 genaamd, slaagde in deze taak. In figuur 1 kan je MPEG-1 situeren tussen de andere standaarden. De MPEG-1 standaard werd ontworpen om de bitsnelheid van videosequenties te reduceren tot 1.5Mbit/s. Als je weet dat de data rate van een audio signaal van goede kwaliteit ongeveer 1.4 Mbit/s bedraagt betekent dit dat een soundtrack plus de video informatie moet worden opgeslagen in de ruimte dat normaal door audio alleen zou worden ingenomen. Om dergelijke reducties te halen beroept men zich op complexe technieken die temporele en spatiale redundantie elimineren. Mobile Videophone ISDN Video CD Digital TV HDTV videophone over PSTN videophone kbit/s Mbit/s Very Low bitrate Low bitrate Medium bitrate High bitrate MPEG 4 H.263 H.261 MPEG 1 MPEG 2 Figuur 1: Standaarden en bitsnelheden Niet lang daarna werd een tweede project gestart met als doel een betere kwaliteit en hogere bitsnelheden te realiseren voor applicaties zoals kabel-tv. Dit project kreeg de naam MPEG-2 (ISO 13818). Een interessante eigenschap van MPEG-2 is schaalbaarheid. Men kan bijvoorbeeld uit één MPEG-2 bitstream 2 of meer videosequenties met verschillende spatiale, temporele en kwalitatieve resoluties extraheren. Een volgende stap was het coderen van High Definition Television (HDTV). Dit zou MPEG- 3 heten. Maar de versatiliteit van de MPEG-2 standaard, die in staat was video te coderen aan elke resolutie liet geen plaats meer voor MPEG-3 en het project werd dan ook geannuleerd. Een volgende stap was het ontwikkelen van een standaard voor zeer kleine bitsnelheden, kleiner dan 64kbit/s. Deze werd dan de MPEG-4 (ISO 14496) standaard. Aangezien de codeerstrategie van deze standaard zeer efficiënt is, definieert de standaard ook het gebruik 8

9 van deze codec voor het encoderen van beelden met hoge resolutie maar dan aan hogere bitsnelheid. Wat kan er nu gebeuren indien men zo n sterk gecomprimeerd videobestand over een pakketgebaseerd netwerk zou streamen 2?. Bij streamen gebruikt men immers het UDP-protocol waardoor pakketten die verloren gaan niet opnieuw verstuurd worden door de zender. Indien er fouten optreden in het netwerk gaan de beschadigde pakketjes onherroepelijk verloren. In de ontvangen videosequentie zullen er dus stukken ontbreken. Dit zal een invloed hebben op de beeldkwaliteit. Meer pakketverlies zal overeenkomen met slechtere kwaliteit. Het is nu de vraag in welke mate coderingparameters, zoals de bitsnelheid, en netwerkparameters, zoals de pakketlengte, invloed gaan hebben op de kwaliteit van het ontvangen bestand. Het doel van dit thesiswerk is de relatie tussen deze parameters en de kwaliteit van de film, na beschadiging door pakketverlies, te onderzoeken. Het analyseren van de kwaliteit van de ontvangen videosequentie gebeurt met JNDmetrix Dit is een professionele applicatie die een referentie videosequentie vergelijkt met een test videosequentie en een score geeft omgekeerd evenredig met de kwaliteit, rekening houdend met de karakteristieken van het menselijke oog. In het volgende hoofdstuk zal eerst worden verduidelijkt hoe men videoinformatie kan comprimeren. Er wordt uitgelegd hoe redundantie informatie wordt geëlimineerd gebruikmakend van complexe voorspelling- en transformatietechnieken. Vervolgens wordt de MPEG-1 standaard uit de doeken gedaan. Ook de MPEG-2 standaard wordt bekeken waarbij vooral het verschil tussen de twee standaarden wordt verklaard. Dit hoofdstuk komt direct na de inleiding aangezien hier definities en karakteristieken uit de MPEG-standaard worden gegeven die doorheen gans het eindwerk worden gebruikt. In hoofdstuk 3 wordt de probleemstelling nauwkeurig gedefinieerd en de gevolgde werkwijze getoont. In hoofdstuk 4 dan worden alle software applicaties die werden gebruikt en geschreven besproken. In hoofdstuk 5 worden de resultaten door middel van grafieken getoond samen met een analyse van deze resultaten. Hoofdstuk 6 bevat de eindconclusie van deze theoretische studie. Verder 3. 2 Streamen is een techniek waarbij multimedia bestanden zoals videoclips en geluidsbestanden als 'stream' door een server beschikbaar worden gesteld, zodat ze dadelijk afgespeeld kunnen worden zonder dat de hele file eerst moet worden gedownload

10 dient er ook worden verwezen naar de CD-ROM die bij dit eindwerk hoort. U vindt hem terug op het einde van dit boek. In bijlage C staat de inhoud van de CD-ROM. 10

11 Hoofdstuk 2 MPEG standaard In dit hoofdstuk wordt er dieper op de MPEG standaard ingegaan. Dit is nodig om bepaalde effecten die optreden bij pakketverlies te kunnen analyseren en te begrijpen. In de volgende paragrafen wordt er eerst uitgelegd hoe het principe van compressie werkt. De werking en de syntax van de MPEG-1 standaard wordt uit de doeken gedaan. Verder wordt ook kort de MPEG-2 standaard uitgelegd en de verschillen met MPEG Videocompressie Statistische analyse van videosignalen toont aan dat er een sterke correlatie is tussen opeenvolgende frames én tussen pixels 4 in een frame zelf. De decorrelatie van deze signalen kan dus leiden tot een kleinere bandbreedte zonder de kwaliteit van het beeld te beïnvloeden. Een verdere reductie van de bandbreedte volgt uit het verwijderen van informatie waarvoor het menselijke oog ongevoelig is. Meer zelfs, de ongevoeligheid van het menselijk visueel systeem voor het verlies aan bepaalde spatio-temporele visuele informatie kan uitgebuit worden voor verdere reductie. Het oog is bijvoorbeeld veel minder gevoelig voor details wanneer het bewegende gebieden tracht te volgen dan wanneer men naar statische objecten kijkt. Er is als het ware een compromis tussen spatiale en temporele resolutie gebaseerd op het feit dat bewegende gebieden niet zo goed door het oog kunnen worden ontleed. Zodus kunnen 4 Een pixel is een sample punt op een scanlijn en volgt uit het samenvoegen van de woorden picture element 11

12 ook lossy 5 compressietechnieken gebruikt worden voor het reduceren van de bitsnelheid terwijl er geen merkbaar verschil is in beeldkwaliteit. De drie fundamentele principes die de basis vormen voor compressie [1] zijn: Spatiale redundantie reductie: door gebruik te maken van data compressors, zoals transform coding, de spatiale redundantie tussen pixels in een beeld te verminderen. Deze techniek wordt intraframe coding genoemd. Temporele redundantie reductie: door gelijkenissen tussen opeenvolgende frames te detecteren en dus hun verschil te coderen. Dit heet interframe coding. Entropie codering: door variabel length coding technieken toe te passen en zo de redundantie tussen gecomprimeerde data symbolen te reduceren Spatiale redundantie reductie Twee technieken voor het reduceren van de bitsnelheid door spatiale redundantie te elimineren zijn Predictive Coding en Transform Coding [11]. Predictive coding is een techniek waarbij de waarde van een pixel wordt voorspeld aan de hand van voorgaande gecodeerde pixels. De afwijking tussen de effectieve en de voorspelde waarde, het foutsignaal, wordt geëncodeerd. Deze techniek wordt Differential Pulse Code Modulation (DPCM) genoemd. In figuur 2 vind je een blokschema. In de encoder wordt het verschil tussen de binnenkomende pixel en de waarde van de voorspelling van de predictor gekwantificeerd en gecodeerd. Aan de decoderzijde wordt het ontvangen foutsignaal opgeteld bij de voorspelling om zo het signaal te reconstrueren. Deze coderingstechniek is lossy tenzij de quantiser niet wordt gebruikt, dan is de codering lossless en is het gereconstrueerde signaal gelijk aan het originele. De compressie is dan volledig afhankelijk van de entropy coder. Let eveneens op het verschil tussen encoder en decoder. Er bestaat immers een sterke asymmetrie tussen encoder en decoder in termen van complexiteit en vereiste rekenkracht. Dit is meestal algemeen geldig. De encoder moet een ingewikkelde beslissingsboom doorkruisen 5 Men spreekt van lossy als het gereconstrueerde beeld (na compressie en decompressie) het originele beeld benadert. Met lossless technieken is het gereconstrueerde beeld exact hetzelfde als het originele beeld. 12

13 om te bepalen wat te zenden naar de decoder terwijl de decoder enkel doet wat hem gezegd wordt te doen. Het voorspellen van de pixels gebeurt het best op basis van naburige pixels, zowel in tijd (vorige frame) als in plaats (pixels rondom pixel in zelfde frame). De eerste techniek heet interframe predictive coding en het laatste intraframe predictive coding. Een combinatie van beiden heet hybrid predictive coding. ENCODER Quantiser Entropy coder Binaire code Predictor DECODER Entropy decoder Predictor Figuur 2: Block diagram van een DPCM codec Om zeer kleine bitsnelheden te behalen moeten groepen van pixels samen gecodeerd worden opdat de gemiddelde bit per pixel kleiner zou zijn dan 1. Daarvoor is block transform coding meer geschikt dan DPCM. Desondanks wordt DPCM nog gebruikt in videocompressie bijvoorbeeld voor het coderen van bewegingsvectoren en blok adressen. Transform coding wordt, zoals gezegd vooral gebruikt om spatiale redundantie te elimineren. Deze techniek gaat eerst de pixels afbeelden naar een transformatiedomein om daarna data reductie toe te passen. De sterkte van deze transform coding ligt in het feit dat in de meeste natuurlijke scenes de energie van het beeld vooral geconcentreerd is in het lage frequentiegebied. De coëfficiënten, bekomen na transformatie, kunnen dan gekwantificeerd worden waarbij 13

14 onbelangrijke coëfficiënten, namelijk die corresponderend met het hogere frequentiegebied, evalueren naar nul en dus niet dienen gecodeerd te worden. Deze quantisatie is in feite een proces om de precisie van de transformatiecoëfficiënten te reduceren. Die precisiereductie is enorm belangrijk aangezien een lagere precisie bijna altijd resulteert in een lagere bitsnelheid van de gecomprimeerde datastroom. Aangezien tijdens de quantisatie enige precisie verloren is gegaan, gaan de gedequantiseerde waarden in de decoder niet exact overeenstemmen met de originele waarden. Dit is dus een lossy compressietechniek. De quantisatie waarden, de waarden door dewelke men de transformcoëfficiënten moet delen, zijn dan ook zodanig gekozen dat zij de distortie in het gereconstrueerde beeld minimaliseren. De belangrijkste transformatie is de DCT, de Discrete Cosinus Transformatie. De reden hiervoor is dat de basisvectoren vergelijkbaar zijn met de intensiteitsvariaties van de meeste natuurlijke beelden, zodanig dat de beeldenergie wordt afgebeeld op slechts een paar coëfficiënten. De beeldenergie wordt geconcentreerd in deze coëfficiënten en de overige coëfficiënten zijn verwaarloosbaar. De DCT is in feite een decompositieproces waarbij de data worden getransformeerd naar onderliggende spatiale frequenties waarbij de resulterende coëfficiënten relatief ongecorreleerd zijn. Maar een zuivere transformatie houdt echter geen compressie in, enkel een transformatie tussen 2 domeinen. De energie in zowel het pixeldomein als in het transformdomein is immers gelijk, dit ten gevolge van de orthonormaliteit van de transformatie. Het is de quantisatie en Variabele Lengte Codering van de DCT coëfficiënten die leiden tot bitsnelheid reductie. Aangezien in natuurlijke beeldsequenties de pixels gecorreleerd zijn in zowel de horizontale en verticale richting als in de temporele richting zou een 3 dimensionale DCT een evidente keuze zijn. Maar aangezien voor een transformatie in de temporele richting verschillende beelden dienen te worden opgeslagen brengt dit vertraging met zich mee. Zodus wordt transformatie beperkt tot 2 dimensies. De DCT transformatie heeft volgende wiskundige gedaante: 14

15 C( u) C( v) F( u, v) 2 2 u = 0,1,.., N 1 v = 0,1,.., M N 1 1 = M x= 0 y= C ( x) = voor x =0 2 C ( x) = 1 voor x >0 π (2x + 1) u π (2y + 1) v f ( x, y) cos( ) cos( ) 2N 2N Aangezien de MPEG standaard werkt met blokken van 8 8 pixels, macroblokken genoemd, wordt er een 8-punts DCT doorgevoerd waarbij er dus gesommeerd wordt over 8 pixels in de horizontale en verticale richting (M=8 en N=8). Het product van de cosinustermen, de basisfuncties van de 2D-DCT, staan afgebeeld in figuur 3. Deze figuur stelt de 64 2-D cosinusfuncties voor van de 8 8 DCT. Elk blok is een 8 8 array van samples. Nul amplitudes zijn neutraal grijs, negatieve amplitudes hebben een meer donkere intensiteit en positieve amplitudes hebben een lichtere intensiteit. Figuur 3: De 64 2-D cosinusfuncties van de 8 8 DCT. 15

16 Elk blok van 8 8 pixels van het originele beeld wordt dus samengesteld door een gewogen som van deze 64 patronen. De coëfficiënten van deze som vormen de DCT coëfficiënten. De coëfficiënt F(0,0) wordt de DC coëfficiënt genoemd. Het stelt de gemiddelde waarde voor van het ganse blok. Alle andere coëfficiënten zijn de AC coëfficiënten. Na transformatie van een macroblok worden de coëfficiënten gekwantificeerd. Quantisatie van de coëfficiënten gebeurt door deze waarden te delen door een quantisatiewaarde en af te ronden. Men gaat de 8 8 matrix van DCT coëfficiënten delen door een 8 8 quantisatiematrix. Bij intra-coding worden de bekomen waarden afgerond naar de dichtst bijgelegen integer. Bij inter-coding worden de waarden altijd afgerond naar de kleinste waarde. Figuur 4 verduidelijkt. Het interval rond nul bij non-intra wordt de dode zone genoemd. gequantiseerde DCT (a) Niet gequantiseerde DCT (b) gequantiseerde DCT Niet gequantiseerde DCT Dode zone Figuur 4: Afronden van gekwantificeerde DCT coëfficiënten voor (a) intra coding en (b) voor non-intra coding Temporele redundantie reductie De temporele redundantie wordt gereduceerd door gebruik te maken van het beperkte verschil tussen opeenvolgende beelden. Als referentiebeeld wordt een vorig beeld uit de sequentie genomen. De delen van het beeld die veranderen ten gevolge van helderheidsvariaties of ten gevolge van beweging van objecten, resulteren in een belangrijk foutsignaal dat dient te 16

17 worden gecodeerd. Het foutsignaal kan gereduceerd worden door een complexere techniek toe te passen namelijk motion compensation. Bij deze techniek gaat men een bewegings-gecompenseerd ( motion compensated ) beeld als referentiebeeld gebruiken in plaats van eenvoudigweg het vorig beeld wat het foutsignaal en dus ook de bitsnelheid sterk kan reduceren. Een bewegingsgecompenseerd beeld is een voorspeld beeld rekening houdend met de grootte en richting van beweging uit vorige beeld of beelden. Er worden bewegingsvectoren aan gebieden van een bepaalde pixelgrootte in het beeld toegekend voor het voorspellen van de beweging. Deze bewegingsvectoren worden ook naar de decoder gestuurd die deze gebruikt om ook een bewegings-gecompenseerd beeld te maken om het effectieve beeld opnieuw samen te stellen. Om Motion Compensation te kunnen toepassen moet men dus een beeld kunnen voorspellen. Dit heet motion estimation. Dit voorspellen wordt dus enkel door de encoder uitgevoerd. Het is ook de taak die de meeste complexiteit en het meeste rekenkracht vereist. De meest gekende techniek van motion estimation heet Block Matching Algorithm of kortweg BMA. Bij een typische BMA implementatie wordt een frame verdeeld in blokken van M N pixels, meestal vierkante blokken van dus N² pixels. Dan, gegeven een maximale verplaatsing van w pixels per frame, wordt het huidige blok pixels vergeleken met eenzelfde blok op dezelfde coördinaten maar in het vorig frame, binnen het vierkant venster van N+2w breed rondom het huidige blok. Figuur 5 verduidelijkt. 17

18 N+2w N+2w w w (N N) blok in huidig frame (N N) onderzocht blok in vorig frame Figuur 5: Het huidig en vorig frame in een zoek venster De verplaatsing die het beste past volgens een bepaald criterium resulteert in de verplaatsingsrichting en grootte van het blok. Verscheidene soorten criteria zoals de kruis correlatie functie (cross correlation fucntion of CCF), gemiddelde kwadratische fout (mean squared error of MSE) of gemiddelde absolute fout (mean absolute error of MAE) kunnen worden gebruikt. Om de best passende verplaatsing te vinden moeten alle mogelijke posities worden berekend, resulterend in een totaal van (2w+1)² evaluaties per blok met elk ongeveer 2N² optellingen en aftrekkingen. Gezien de zeer rekenintensieve bewerkingen die nodig zijn, is deze techniek zeer ongepast om te gebruiken in software gebaseerde codecs. Onderzoek naar snellere voorspellingstechnieken hebben enkele bruikbare algoritmes opgeleverd. Zo hebben we de 2- dimensionale logaritmische zoekmethode die de richting van een minimum gemiddelde kwadratische fout zoekt. Ook andere technieken zoals de hierarchical block matching algorithm werden ontwikkeld. Deze techniek is vooral bruikbaar bij grote beweging, waar snelle BMA s convergeren naar een lokaal minimum. Door het beeld te subsamplen in kleinere delen wordt de 18

19 bewegingssnelheid tevens gereduceerd met de sampleverhouding en verhindert men vorig probleem Entropie Coding Voor verdere bitsnelheid reductie worden de transformatiecoëfficiënten en de coördinaten van de snelheidsvectoren geëncodeerd volgens een variabele lengte coderingsalgoritme. Het komt er op neer dat veel voorkomende waarden met een kort codewoord worden geëncodeerd en weinig voorkomende waarden met een langer codewoord. De lengte van het codewoord moet omgekeerd evenredig zijn met de waarschijnlijkheid van optreden van dat codewoord. Er zijn 2 soorten VLC technieken die worden toegepast in standaard codecs namelijk Huffman coding of Arithmetic coding. Huffman codering is de meest algemeen gekende VLC methode gebaseerd op probabilistische statistieken. Huffman codering kent een codewoord toe aan elk symbool gaande van 1 bit tot veel langer dan de input symbolen afhankelijk van hun probabilitet. Aangezien echter bij Huffman een codewoord moet bestaan uit een integraal aantal bits resulteert dit een suboptimaal codeerschema. Arithmetic coding is een datacompressietechniek waarbij er een codewoord wordt gecreëerd die een fractie voorstelt tussen 0 en 1. Een bericht bestaande uit een aantal symbolen wordt samengenomen en omgerekend naar een getal tussen 0 en 1. Hierbij is men dus in staat van codewoorden bestaande uit een niet-integraal aantal bits toe te kennen aan één symbool. Dit maakt arithmetic coding efficiënter dan Huffman coding Generieke encoder Figuur 6 toont de generieke encoder die gebruikt wordt door alle standaard video codecs zoals MPEG 1, MPEG-2, MPEG-4, H.261 en H

20 Video Input b Stand a: inter frame Stand b: intra frame a a b DCT quantiser Inverse Q&DCT VLC Buffer bit stream Frame store Motion estimator Motion vectors Figuur 6: Generieke interframe predictieve encoder a. Interframe loop Bij interframe predictieve codering wordt het verschil tussen de pixels van het huidig frame en de voorspelde waarde van de pixels volgend uit het vorig frame gecodeerd en doorgestuurd. Aan de decoderzijde wordt na decodering van het foutsignaal deze opgeteld bij een gelijke voorspelde waarde om zo het beeld te reconstrueren. Hoe beter de voorspelling, hoe kleiner het foutsignaal en hoe kleiner de resulterende bitsnelheid. Indien de scene stil staat is de pixelwaarde in het vorig frame een goede voorspelling van de huidige pixelwaarde. Indien er echter beweging is, dan wordt een pixel verplaatst volgens een bewegingsvector, gebruikt als predictiewaarde. b. Motion estimator Aan een groep van pixels wordt er een bewegingsvector toegekend zodanig dat de bewegingsvector overhead per pixel zeer klein blijft. In standaard codecs wordt er gekozen voor een blok van pixels, macroblok (MB)genoemd. Er wordt wel enkel bewegingsvoorspelling uitgevoerd op het luminantie gedeelte van het beeld. Voor het chrominantie gedeelte wordt er een geschaalde versie van dezelfde bewegingsvector gebruikt. 20

21 c. Inter/intra schakelaar Elke macroblok wordt ofwel interframe ofwel intraframe gecodeerd, inter-macroblok of intramacroblok genoemd. De beslissing van het type macroblok is afhankelijk van de codeertechniek. d. DCT Elke macroblok is opgedeeld in luminantie en chrominantie pixelblokken van 8 8 pixels groot. Elk blok wordt dan getransformeerd met de DCT. Er zijn 4 luminantieblokken in 1 macroblok maar het aantal chrominantieblokken is afhankelijk van de kleurresolutie (of beeldformaat). e. Quantiser Zoals eerder vermeld zijn er 2 soorten quantisers. Een met een dode zone voor de AC coëfficiënten en de DC coëfficiënten van het InterMB. De andere zonder de dode zone wordt gebruikt voor de DC coëfficiënten van het IntraMB. f. Inverse Q&DCT Om een predictie voor intraframe coding te genereren, worden de gekwantificeerde DCT coëfficiënten eerst invers gekwantificeerd en invers DCT getransformeerd. Deze worden dan opgeteld bij het vorige beeld. Dit beeld wordt dan gebruikt om het volgende beeld in de sequentie mee te coderen. g. Buffer De gegenereerde bitstroom van een intraframe encoder is variabel. Dit volgt uit het feit dat de bitsnelheid vooral afhankelijk is van de activiteit in de beeldsequentie. Om nu gecodeerde video te kunnen sturen via kanalen met een vaste snelheid moet de bitsnelheid worden geregeld zodat deze een constante waarde aanneemt. Door het opslaan van de gecodeerde data in een buffer en deze te ledigen aan de kanaalsnelheid bereikt men deze vereiste. De activiteit in het beeld kan echter plots van die aard zijn dat de buffer kan gaan overlopen. Daarvoor is er een feedbacklus nodig van de buffer naar de quantiser zodat de bitsnelheid naar de buffer kan worden geregeld. Indien de bufferbezetting stijgt, gaat de feedback een grotere 21

22 stapgrootte instellen bij de quantiser om zo de bitsnelheid weer te reduceren zodat de buffer terug op normale bezetting komt MPEG standaard In deze paragraaf zal er vooral dieper worden ingegaan op de MPEG-1 standaard [7]omdat deze de eerste generatie video codecs inleidt die werden voorgesteld door de Motion Picture Experts Group (MPEG) [2][8]. Verder worden er aan de hand van deze standaard de daaropvolgende standaarden verduidelijkt MPEG-1 standaard In de jaren 1990 was er vanuit de industrie een grote vraag naar efficiënte technieken om visuele informatie op te slaan op andere opslagmedia dan de conventionele analoge video recorders. Naar aanleiding van deze vraag werd de eerste MPEG standaard ontwikkeld. Rond die periode kon de CD-ROM data aan een snelheid van ongeveer 1.2Mbits/s leveren. Deze snelheid werd dan ook door het MPEG-comité als doel vooropgesteld. De MPEG-1 standaard is gebaseerd op progressief gescande beelden. MPEG-1 herkent dus geen interlacing. Interlacing is een techniek waarbij opeenvolgende frames worden opgesplitst in een bovenste en een onderste veld (field). Deze velden zijn een halve scanlijn ten opzichte van elkaar verplaatst in de vertikale richting en worden aan het dubbele van de framerate getoond. Dit wordt toegepast om vloeiende beelden te verkrijgen en flikkeringen te vermijden. Videobronnen die interlaced zijn dienen eerst te worden omgevormd naar een niet-geïnterlaced formaat. Aangezien het coderen voor opslag op digitaal media als directe rivaal voor de VCR werd beschouwd, diende de videokwaliteit van MPEG-1 aan een rate van 1 tot 1.5 Mbit/s vergelijkbaar te zijn met de kwaliteit van VCR. Men diende ook dezelfde functionaliteit als VCR te voorzien, zoals, snel vooruit spoelen (fast forward), terugspoelen (rewind), beeld pauzeren (freeze), enz. In zekere zin bepaalt het type opslagmedium of de decoder deze verschillende modes al dan niet kan aanbieden. Maar, men moet zich wel realiseren dat efficiënte codering en flexibiliteit in gebruik niet compatibel zijn. Het toevoegen van de 22

23 functionaliteit willlekeurige toegang (random acces) vereist het aanwezig zijn van volledig gecodeerde frames (intra frame). Dit resulteert dan weer een in minder efficiënte compressie. In de 2 volgende paragrafen volgt een beschrijving van hoe een MPEG-1 stream samengesteld is MPEG System Layer De MPEG system layer beschrijft hoe men 2 of meer gecomprimeerde audio of video bitstreams moet combineren tot één enkele bitstream [4]. Deze sequentie wordt formeel de ISO stream genoemd. Het beschrijft de syntax nodig voor de timing, het combineren van de streams en de synchronisatie tussen de verschillende streams. De structuur van een ISO bistream staat afgebeeld in figuur 7. ISO System layer Compression layer Multiplex-wide Operation Stream-specific Operation (Packet layer) Audio Video (Pack layer) Adjust Clocks Manage Buffers Multiplexers Synchronisation Figuur 7: Structuur van een ISO stream Het bestaat uit een system layer en verschillende compression layers. De system layer is in feite de envelop voor de compression layers. De compression layers bevatten de data die naar de audio en video decoders dient te worden gestuurd. De system layer voorziet enkel in de nodige controle-informatie voor het demultiplexen van de compression layers. Een MPEG system blok diagram is te zien in figuur 8. 23

24 Audio compression layer Audio decoder Digitaal opslag medium System decoder Clock Video compression layer Video decoder Figuur 8: MPEG system structuur Een MPEG bitstream bestaat uit een sequentie van pakken ( packs ) die op hun beurt zijn onderverdeeld in pakketten ( packets ). Pakken en pakketten starten met een uniek 32 bits codewoord. Enkele pak en pakket startcodes staan in tabel 3. Alle startcodes hebben een 3 byte prefix bestaande uit 23 nullen gevolgd door een 1. De laatste byte identificeert dan de betreffende startcode. De system decoder herkent deze startcodes en stuurt de gescheiden video en audio data samen met de timing informatie naar de gepaste decoders. In figuur 9 vind je de structuur van een MPEG bitstream. Pack start code Pack header Packet Packet End code Packet start code Packet header Packet Data Figuur 9: System layer pak en pakket structuur De payload van elk packet bevat 1 type gecomprimeerde data (videostream, audiostream of datastream) en de packet header bevat essentiële informatie omtrent zijn payload. Zo vindt 24

25 men in de packet header de lengte terug van het volledige packet. De system layer laat toe van 32 audio, 16 video en 2 data kanalen te multiplexen naar 1 bitstream. Start code naam Hexadecimaal System start codes iso_11172_end_code pack_start_code system_header_start_code B BA BB Packet start codes reserved stream private_stream_1 padding stream private_stream_2 audio stream 0 audio stream 31 video stream 0 video stream BC BD BE BF C DF E EF Tabel 1: De system layer start codes De verschillende elementaire streams worden gesynchroniseerd met behulp van Presentatie Tijd Stempels (Presentation Time Stamps of PTS). Tijdens het encoderen van de data gaat de encoder tijdstempels opnemen in de stream. De ontvanger maakt gebruik van deze PTS in elke geassocieerde gedecodeerde stream om het presenteren van de data te plannen. Om overflow en underflow van de buffer in de decoder te vermijden gebruikt men nog een andere tijdstempel namelijk de Decoder Tijd Stempels (Decoder Time Stamps of DTS). Op sommige plaatsen in een videosequentie zijn de DTS en de PTS gelijk en wordt er enkel een PTS gebruikt. Voor men de bronvideo kan encoderen dient men deze eerst om te zetten. Indien het bronmateriaal in CCIR-601 formaat beschikbaar is moet deze eerst worden geconverteerd naar SIF formaat aangezien MPEG-1 optimaal werkt voor coderen aan VCR resoluties en dus 25

26 SIF formaat. Het CCIR-601 formaat is het analoge videoformaat zoals het wordt uitgezonden door Europese televisiestations. In dit formaat is het aantal lijnen per frame gelijk aan 625 en het aantal beelden per seconde is 25. Het Noord-Amerikaanse NTSC formaat beschrijft 525 lijnen per frame en 30 frames per seconde. Beide formaten zijn tevens interlaced en het aantal pixels per lijn bedraagt voor beiden 720. Het SIF-625 formaat definieert een resolutie van 360 pixels per lijn, 288 lijnen per frame en 25 beelden per seconde. Dit formaat is tevens progressief of non-interlaced en dus geschikt voor MPEG-1. De beelden uit een videosequentie worden niet allemaal op dezelfde manier gecodeerd. MPEG definieert 4 types beelden. Een eerste type zijn de I-frames welke gecodeerd worden zonder referentie naar vorige of latere frames. Deze zijn intraframe gecodeerd en zijn dus toegangspunten tot de gecodeerde stream. Een tweede type zijn de P-frames. Deze zijn predictief gecodeerd met als referentie vorig I of P-frame. Een derde type zijn de B-frames. Deze zijn bidirectioneel gecodeerd ten opzichte van vorige en latere I of P-frames. B-frames worden nooit zelf als referentie gebruikt. Aangezien echter B-frames zowel I-frames als P- frames gebruikt als voorspelling moeten deze later worden gecodeerd dan de I of P-frames. Er moet dus een herordening van de beelden worden doorgevoerd. De getoonde beeldsequentie en de geëncodeerde beeldsequentie zal dus verschillend zijn. Een laatste type beelden zijn de D-frames. Deze zijn intraframe gecodeerd maar enkel de DC coëfficiënten worden overgehouden. Dit betekent dus zeer slechte beeldkwaliteit en deze worden dan ook zelden gebruikt Videostructuur In deze paragraaf wordt de structuur van een videosequentie verduidelijkt. Deze layer heeft een hiërarchische structuur en begint met het hoogste niveau, namelijk de GOP (groep van beelden) en eindigt bij het laagste niveau, namelijk een blok van 8 8 pixels. Group Of Pictures layer Een MPEG systemstream kan gedemultiplext worden tot elementaire streams. De video sequence bitstream is zo n elementaire stream. Deze bevat enkel beeldinformatie en is een volledig op zichzelf staande stream behalve voor bepaalde kritische timinginformatie die zich bevindt in de system layer. Elke videosequentie bestaat dan uit een of meer Groups Of 26

27 Pictures (of GOP) die periodisch worden herhaald. Een GOP is als het ware het hoogste niveau in de codering hiërarchie. Een GOP is, zoals de naam al laat vermoeden, een sequentie van verschillende types frames 6. In figuur 10 staat een typische GOP afgebeeld. Het eerste gecodeerde frame is altijd een I-frame en dus volledig onafhankelijk gecodeerd. Dit wordt gevolgd door een aantal P en B-frames. Tijdsas GOP lengte I-frame P-frame B-frame Figuur 10: Een typische GOP in afspeelvolgorde De GOP-lengte wordt gedefinieerd als de afstand tussen 2 I-frames voorgesteld door de parameter N in standaard codecs. De M parameter staat voor de afstand tussen I/P-frames en P-frame. De GOP-structuur krijgt dan de naam N/M. In figuur 10 bedraagt N 12 en M 3, 12/3 GOP genoemd. Een GOP mag van willekeurige lengte zijn maar er moet ten minste één I- frame aanwezig zijn. Noch P of B-frame moeten aanwezig zijn. Zoals gezegd verschilt de encoderingsvolgorde en afspeelvolgorde van de frames. Aangezien men eerst een toekomstig P-frame of I-frame nodig heeft om een huidig B-frame te reconstrueren moet deze eerst staan in de encoderingsvolgorde. In het geval van figuur 10 zal de encoderingsvolgorde er als volgt uitzien: Picture layer 6 Er wordt vaak beeld (picture) en frame door elkaar gebruikt bij de verklaring van bepaalde zaken. Er is immers niet veel verschil tussen die twee. Volgende stelling zal dit verduidelijken. Een beeld dat wordt gescand (met bijvoorbeeld een videocamera) genereert een frame van dat beeld. 27

28 Alle drie de belangrijkste beeldtypes, I-,P- en B-frames, hebben dezelfde SIF-grootte met het 4:2:0 formaat. Volgens het 4:2:0 formaat zijn de luminantie en chrominantie 7 samples geschikt volgens figuur 11. In het SIF-625 formaat heeft het luminantie gedeelte van elk beeld 360 pixels, 288 lijnen en 25Hz en de chrominantie component 180 pixels, 144 lijnen en 25 Hz. Volgens het SIF-525 formaat zijn deze waarden voor het luminantie gedeelte respectievelijk 360, 240 en 30 en voor het chrominantie gedeelte 180, 120 en 30.. Luminatie Chrominantie Figuur 11: Positionering van chrominantie en luminantie samples Slice Elk beeld wordt opgesplitst in groepen van macroblokken, slices genoemd. Slices kunnen beginnen en eindigen bij gelijk welke macroblok maar er zijn wel enkel beperkingen. De eerste slice moet beginnen aan de linker bovenhoek van het beeld en de laatste slice moet eindigen aan de rechter benedenhoek, zoals getoond in figuur 12. Hieruit volgt dat het minimum aantal slices één bedraagt en het maximum aantal gelijk is aan het aantal macroblokken. De reden om het beeld op te delen in slices is het vermijden van de effecten van kanaalfoutpropagatie. Indien de gecodeerde data corrupt zijn en de decoder detecteert, dan kan deze zoeken naar het begin van de volgende slice en vanaf dit punt beginnen te decoderen. Omwille van deze reden is het interessant om in een foutgevoelige omgeving 7 Een pixel kan gereconstrueerd worden aan de hand van de RGB (Rood Groen Blauw) waarden of YC r C b waarden. Hierbij is de Y de luminantie of helderheid en zijn de C r C b 2 chrominantie componenten. Er bestaat een eenvoudige mathematische relatie tussen de twee domeinen. 28

29 zoveel mogelijk slices te hebben. Maar elke slice heeft een grote overhead (slice header) wat op zijn beurt grote overhead creëert in de totale bitsnelheid. 1 begin 1 end 2 begin 2 end 3 begin 3 end 4 begin 4 end 5 begin 5 end 6 begin 6 end Figuur 12: Mogelijke schikking van 6 slices in een beeld Om een goede immuniteit te garanderen tegen kanaalfouten en tegelijk de slice overhead te minimaliseren kan men korte slices gebruiken voor macroblokken met relatief veel energie (zoals intra-mb) en langere slices voor macroblokken met weinig energie (zoals macroblokken in B-frames). Macroblok Slices worden opgedeeld in macroblokken van pixels. De macroblokken worden op hun beurt opgesplitst in 6 (4 luminantie en 2 chrominantie) blokken voor codering. Er zijn tot 8 verschillende soorten macroblokken: 1. Inter coded: Inter gecodeerde macroblokken zonder bewegingsvector of met bewegingsvector gelijk aan nul. 2. MC coded: Bewegingsgecompenseerde macroblokken waarbij de MCfout (Motion compensated error) significant is en dient te worden DCT gecodeerd 3. MC not coded: Dit zijn bewegingsgecompenseerde foutmacroblokken, waarbij de MC-fout insignificant is en dus niet DCT dienen te worden gecodeerd. 29

30 4. Intra: Intraframe gecodeerde macroblokken 5. Not coded: Indien alle 6 blokken in een macroblok, zonder bewegingscompensatie, zeer kleine energie hebben worden ze niet gecodeerd. Deze types macroblokken treden vooral op in statische delen van een beeldsequentie. In de decoder worden deze gewoon vervangen door kopieën van het vorig frame 6. Inter coded + Q 7. MC coded +Q 8. Intra +Q De 3 laatste MB s geven aan dat er een nieuwe quantisatie matrix moet worden ingesteld voor de volgende MB s. Met 5 bits overhead wordt er een nieuwe quantisatie index (1-31) meegegeven die wordt vermenigvuldigd met de standaard quantisatie matrix. Het veelvuldig veranderen van de quantisatie matrix resulteert dus extra overhead en is dus nefast voor de bitsnelheid. Voor het adresseren van de MB s gebruikt men het macroblok adres increment. In het geval dat een macroblok gecodeerd wordt geeft men het een adres dat overeenkomt met de plaats in het beeld. Het eerste macroblok in de linker bovenhoek van het beeld krijgt adres 1, die daarnaast 2 enz. In het geval de MB niet gecodeerd worden geeft men aan de volgende gecodeerde macroblok het verschil in adres ten opzichte van de vorig gecodeerde MB mee. Dit om adres overhead te reduceren. Blok Het kleinste element in een beeldstructuur is een blok van 8 8 pixels, voor zowel de luminantie als de chrominantie componenten. Op dit niveau wordt er DCT codering doorgevoerd. De bitstream van een enkelvoudige videosequentie ziet er dus uit zoals geschetst in figuur

31 Videosequentie Sequence header GOP GOP GOP GOP Sequence end code GOP header Picture Picture Picture Picture Picture header Slice Slice Slice Slice Slice header macroblok macroblok macroblok macroblok Macroblok header Blok(0) Blok(1) Blok(2) Blok(3) Blok(4) Blok(5) Verplicht Optioneel Figuur 13: De verschillende lagen van een videostream De bovenste laag, de sequence layer, begint met een sequence header en eindigt met een sequence end code. Minstens 1 GOP is aanwezig. Onder de sequence layer vinden we de Group Of Pictures of GOP layers. Hier ook is er minstens 1 picture aanwezig. Daarna volgt de picture layer met minstens 1 slice en de slice layer met minstens 1 macroblok. De macroblok layer bestaat uit 6 blokken, 4 voor de luminantie component en 2 voor de 2 chrominantie componenten. Onder de macroblok layer (en dus niet op de figuur) komt de block layer. Deze bevat de gecodeerde DC en AC coëfficiënten Coderen van beelden MPEG definiëert, zoals gezegd, 4 soorten beelden of frames, waarvan 1 minder belangrijk. Intra-gecodeerde beelden of I-frames zijn gecodeerd onafhankelijk van vorige of volgende beelden in de sequentie. P-frames (Predicted Frames) zijn gecodeerd ten opzichte van het voorafgaand I- of P-frame. Bidirectionele beelden of B-frames liggen verspreid tussen de I- 31

32 en P-frames in de sequentie en zijn gecodeerd ten opzichte van de direct aangrenzende I- en P- frames zowel voorafgaand, volgend als beide. En hoewel verschillende B- frames elkaar kunnen opvolgen, mogen ze nooit worden gebruikt om andere beelden te voorspellen. I-frames In I-frames zijn de DCT-coëfficiënten in een blok bijna volledig gedecorreleerd. Er is echter wel nog wat correlatie tussen de DC-waarden van aangrenzende blokken. Daarom gaat men de DC-coëfficiënten apart van de AC-coëfficiënten coderen met predictieve DPCM techniek. Zoals je kan zien in onderstaande vergelijking wordt de DC-waarde van een aangrenzend blok dat net gecodeerd is, P, gebruikt als voorspelling voor de DC-waarde van het huidig blok. Het verschil, DC, is meestal klein. Dit wordt dan geëncodeerd. DC = DC P De AC-coëfficiënten worden volledig onafhankelijk van elkaar gecodeerd wat het encodeerproces heel wat vereenvoudigt. Hoewel het coderen onafhankelijk van andere coëfficiënten gebeurt, is het wel afhankelijk van de positie in de blokmatrix. Coëfficiënten die de hoge frequenties vertegenwoordigen zijn bijna altijd nul (na quantisatie). Daartegenover staan de coëfficienten van de lage frequenties die bijna altijd verschillend zijn van nul. Om dit gedrag uit te buiten, worden de coëfficiënten qualitatief geschikt volgens stijgende frequentie en dus volgens de zigzag scanorde (zie figuur 14).... Figuur 14: Zigzag ordening van de DCT coëfficiënten in een blok Zoals gezegd zijn veel coëfficiënten nul in een typisch 8 8 blok en volgens deze zigzag scanorde heeft men de grootste kans om rijen van nulcoëfficiënten te bekomen. Nu worden deze reeksen nulcoëfficiënten samengenomen tot één composiet symbool wat de encodering efficiëntie sterk doet toenemen. Zo is het EOB (End-Of-Block) symbool een zeer belangrijk symbool. Vanaf een bepaalde plaats in de zigzag scanorde zullen alle coëfficiënten nul blijven 32

33 tot het einde van het blok en dus worden deze coëfficiënten voorgesteld door het EOB symbool. De AC-coëfficiënten worden gecodeerd volgens een run/level symbolenstructuur. Run refereert naar het aantal nulcoëfficiënten voor de volgende niet-nu coëfficiënt. Level is de amplitude van de niet-nulcoëfficiënt. Met de meeste run/level combinaties stemt in de VLC tabel een codewoord overeen. Indien een uitzonderlijke run/level combinatie voortkomt, kan men deze nog altijd coderen met een escape symbool gevolgd door een 6-bit code voor de run en een 8- of 16- bit code voor de level. P- en B-frames De decorrelatieve eigenschap van de DCT-transformatie is in feite maar toepasbaar op intragecodeerde frames. Non-intra beelden zijn immers al gecodeerd relatief ten opzichte van een voorspeld beeld volgend uit een ander beeld en dit predictieproces decorreleert de data al zeer sterk. De echte reden om DCT toe te passen is de quantisatie. Voor de P-en B-frames kunnen er relatief grove quantisatie stapgroottes worden gebruikt en de daaruitvolgende bitsnelheden zijn zeer laag. Bij het coderen P-en B-beelden is de DC-coëfficiënt een differentiële waarde en is daarom mathematisch gezien exact hetzelfde als de AC-coëfficiënten. Het coderen van de DC- en AC-coëfficiënten wordt daarom geïntegreerd in één operatie.het coderen van de DCTcoëfficiënten in P-en B-beelden wordt voorafgegaan door een hiërarchisch codeerschema waarin volledige nul-macroblokken (macroblokken waarvan alle blokken nul zijn) gecodeerd worden volgens een macroblok adres increment dat efficiënt lange reeksen nul-macroblokken encodeert. Nul-blokken in een van nul verschillend macroblok worden gecodeerd gebruikmakend van het coded block pattern (of cpb). Dit is een 6 bit variabele waarin elke bit beschrijft of het overeenstemmende blok nul of actief is (bv : blok 1 en 4 zijn niet-nul). Een cpb van nul wordt afgehandeld door het macroblok adres increment en het macroblok wordt overgeslaan. Het coderen van de niet-nul blokken gebeurt volgens het run/level principe zoals uitgelegd voor de AC-coëfficiënten in een I-frame. 33

34 MPEG MPEG-2 samengevat Na het universele succes van H.261 en MPEG-1 video codec s, was er een groeiende vraag naar een videocodec die een brede variëteit aan applicaties kon aanpakken. Deze generische codec werd afgerond in 1995 en kreeg de naam MPEG-2/H.262 [5], hoewel het nu beter bekend is als MPEG-2. In onderstaande tabellen vind je een overzicht van de standaarden en hun publicatiejaren. ISO (MPEG 1) IS promotie Pub. jaar Part 1: Systems Nov Part 2: Video Nov Part 3: Audio Nov Part 4: Conformance testing Nov Part 5: Simulation software Mar Tabel 2: Lijst van MPEG-1 delen; International Standaard promotie en publicatiejaar ISO (MPEG 2) IS promotie Pub. jaar Part 1: Systems Nov Part 2: Video Nov Part 3: Audio Nov Part 4: Conformance testing Jul Part 5: Simulation software Jul Part 6: Digital storage media command and control Sept Part 7:Non-backwards compatible audio Mar Part 8: 10 bit video extension Part 9: Real time interface Jul.1996 Nov Tabel 3: Lijst van MPEG 2 delen; International Standaard promotie en publicatiejaar 34

35 De MPEG-1 standaard had als doel het coderen van audio en video voor opslag op een digitaal medium waar de kans op een fout verwaarloosbaar klein is. De MPEG-1 standaard was daarom niet ontworpen om foutrobuust te zijn. MPEG-2 daarentegen, is meer generisch voor een brede waaier aan audiovisuele toepassingen. Daarom diende men in deze standaard foutprotectie te includeren voor bijvoorbeeld televisie uitzendingen te versturen over ATM netwerken. MPEG-2 definieert 2 types streams: de program stream en de transport stream. De program stream is vergelijkbaar met de MPEG-1 system stream maar gebruikt een aangepaste syntax en nieuwe functies voor het ondersteunen van geavanceerde functionaliteiten (vb de schaalbaarheid). Deze voorziet ook de compatibiliteit tussen de MPEG-1 en MPEG-2 standaarden. MPEG-2 decoders moeten in staat zijn MPEG-1 streams te decoderen. Hieruit volgt dat een MPEG-1 stream in feite een substream is van MPEG-2. Er zijn nog andere functionaliteiten in de program stream die niet worden ondersteund door de MPEG-1 systemen zoals indicaties van kopieerrechten, scramblen van de data, toekennen van prioriteiten aan pakketten. De transport stream heeft een grote robuustheid tegen omgevingen met veel ruis en de mogelijkheid om verschillende program streams te verzamelen in één enkele stream. Zelfs verschillende program streams met een onafhankelijke tijsbasis kunnen gemultiplext worden in 1 stream. De MPEG-2 standaard is bedoeld voor vele toepassingen, verschillende bitsnelheden, resoluties, kwaliteiten en diensten. Met behulp van de level en profile worden een beperkt aantal subsets van de syntax aangeduid. Een profile is een subset van de volledig bit-stream syntax gedefinieerd volgens MPEG-2. Binnen de grenzen van een bepaalde profile is het nog altijd mogelijk van grote variaties in de performantie van encoders en decoders te realiseren afhankelijk van waarden die bepaalde parameters in de bitstream aannemen. Met de level worden er dan beperkingen opgelegd aan bepaalde waarden zoals bijvoorbeeld de resolutie. In onderstaande tabellen staan de profiles en levels van MPEG-2. Niet alle level/profile combinaties zijn toegelaten. 35

36 Profile Typische toepassing Karakteristieken SIMPLE Televisie-uitzendingen Geen B-frames, niet schaalbaar, 4:2:0 MAIN DSM, Televisie-uitzendingen Niet schaalbaar, 4:2:0 SNR schaalbaar ATM-netwerken 2-layer SNR codering, 4:2:0 SPATIAL schaalbaar HDTV 2-layer SS codering, 4:2:0 HIGH speciale toepassingen 3-level hybride codering, 4:2:2 Tabel 4: MPEG-2 profile Profile Formaat Frame rate Gecomprimeerde data rate LOW SIF 30 < 4Mbit/s MAIN CCIR < 15 Mbit/s HIGH < 60 Mbit/s HIGH < 80 Mbit/s Tabel 5: MPEG-2 level Nog een belangrijk aspect van MPEG-2 is schaalbaarheid (scalable video coding of layered coding). Het idee achter schaalbaar video codering is dat een encoder 2 bitstreams genereert. Een die de meest vitale video-informatie draagt, de basislaag (base-layer) en een die overgebleven informatie waarmee de beeldkwaliteit van de basislaag kan worden verbeterd draagt, de verbeterings laag (enhancement-layer). In het geval van opstopping van het netwerk kan men er dan voor kiezen om enkel de basislaag te ontvangen. Dit concept van 2- layer coding wordt SNR schaalbaar genoemd Verschillen tussen MPEG-1 en MPEG-2 De MPEG-2 beeldresoluties kunnen variëren van SIF( ) tot HDTV( ). Deze beelden zijn bovendien interlaced, waar bij MPEG-1 enkel progressieve beelden werden gebruikt. De combinatie van verschillende beeldformaten en de optie interlaced/progressief creëert een aantal nieuwe macrobloktypes. Terwijl elk macroblok in een progressieve mode en in een 4:2:0 formaat 6 blokken bevatten, is het aantal blokken in 4:4:4 formaat gelijk aan 12. Een tweede groot verschil is de schaalbaarheid. De schaalbare modes in MPEG-2 zijn bedoeld 36

37 om goede werking tussen veschillende diensten aan te bieden of om de stream aan te passen aan de variërende capaciteiten van verschillende ontvangers en netwerken. Een aantal kleinere verschillen zijn bijvoorbeeld de mogelijkheid om in plaats van een zigzag scanorde een alternatieve scanorde toe te passen. Ook is er de mogelijkheid de DCT coëfficiënten niet-lineair te quantiseren. Dit verbetert de beeldkwaliteit in gebieden met een laag contrast. De slices bij MPEG-2 beginnen en eindigen in dezelfde macroblokrij. Dit is nodig omdat bij bepaalde implementaties het decodeerproces gesplitst wordt in parallelle bewerkingen langs de horizontale rijen in hetzelfde beeld. 37

38 Hoofdstuk 3 Probleemstelling & methodologie 3.1. Probleemstelling Situering Het probleem is als volgt te formuleren: Als we uit een gecomprimeerd videobestand stukken data wegnemen dan zullen we, indien we dit bestand gaan afspelen met een afspeelapparaat (player), dit opmerken in de getoonde beelden. Er zullen in de beelden fouten zichtbaar zijn die de kijker kunnen storen. In figuur 15 staat zo een frame uit een beschadigde sequentie. Men merkt de beschadiging op onderaan in het frame. Het optreden van fouten met een blokvormig patroon is typisch voor digitale video. Dit gebeurt echter ook wanneer men een videobestand over een pakket gebaseerd netwerk gaat versturen. Het bestand dient te worden opgesplitst of gepakketizeerd in kleinere delen, pakketten, om het te versturen over dergelijk netwerk. Eigen aan een netwerk is het optreden van fouten. Er kan bijvoorbeeld opstopping (congestion) optreden in tussenliggende routers of in het netwerk kunnen storingen optreden waardoor er bits foutief worden ontvangen. Dit alles resulteert echter in het verlies van het betreffende pakket. Meestal wordt er in een netwerk gebruik gemaakt van het TCP protocol. Dit protocol detecteert wanneer een pakket niet of slecht is ontvangen en de ontvanger vraagt een retransmissie van dat pakket. Dit herhaalt zich tot het pakket correct is ontvangen. 38

39 Figuur 15: Typische fouten in een beschadigd frame Bij streamen (bv. VOD applicatie 8 ) van een videobestand zal men over het netwerk echter gebruik maken van het UDP-protocol, aangezien er geen tijd is voor retransmissie. Retransmissie van een pakket heeft als gevolg dat dit pakket later, na ontvangst van een aantal nieuwe correcte pakketten, zal ontvangen worden. Het heeft dus geen nut van dit pakket dat bijvoorbeeld data bevat uit een vorig frame (dat dus al getoond is) nog te gaan doorsturen naar de aplicatie (player).de zender stuurt alle pakketten sequentieel door zonder rekening te houden met de ontvanger. Grote vertraging (delay) tussen zender en ontvanger; congestion en andere fouten resulteren in hetzelfde verschijnsel namelijk verlies van het pakket. Er vindt geen retransmissie plaats en de data is verloren. Het ontbreken van de stukken data in het videobestand gaat een bepaald effect hebben bij het afspelen van dat bestand. Dit effect zal afhankelijk zijn van de encoderings-strategie volgens dewelke dit bestand is geëncodeerd. Elke encoderings-standaard heeft eigen karakteristieken die het effect bepalen van pakketverlies. De meest bekende en universele standaard is MPEG. Het zou dan ook interessant zijn van te weten hoe dit soort bestanden gaat reageren op het ontbreken van data. 8 VOD: Video On Demand; Een systeem waarbij men een aantal videobestanden op een server ter beschikking stelt en waarbij clients deze bestanden op willekeurig tijdstip kunnen streamen. 39

40 Parameters In videobestanden geëncodeerd volgens de MPEG codec zullen opeenvolgende frames op een of andere manier afhankelijk zijn van elkaar. Dit gaat voor effect hebben dat, na beschadiging van één frame, meerder frames gaan beschadigd zijn. Een fout zal als het ware propageren naar andere de frames. De Frame Loss wordt gedefinieerd als de verhouding tussen het aantal rechtstreeks beschadigde frames en het totaal aantal frames. De Frame Damage is dan de verhouding tussen het totaal aantal (zowel rechtstreeks als onrechtstreeks) beschadigde frames en het totaal aantal frames. Het propageren van de beschadiging is het duidelijkst te verklaren aan de hand van de GOPstructuur. In figuur 16 staat een videosequentie met een 9/3 GOP en een 6/1 GOP uitgezet. GOP 9/3:... GOP 6/1:... I-frame P-frame B-frame Figuur 16: GOP-structuur: 9/3 en 6/1 Wat gebeurt er nu indien een I-frame beschadigd geraakt? In onderstaand schema staat een 9/3 GOP waarvan een I-frame is beschadigd: Encodeervolgorde (met beschadigd I-frame):...BBIBBPBBPBBIBBP... Encodeervolgorde (met fout propagatie):...bbibbpbbpbbibbp... 40

41 Display volgorde (met schade propagatie):...bpbbibbpbbpbbib In encodeervolgorde zijn de eerste B-frames beschadigd omdat deze relatief gecodeerd zijn ten opzichte van het beschadigde I-frame. Het eerste P-frame is beschadigd omwille van dezelfde reden. Het volgende P-frame is ook beschadigd aangezien het gecodeerd is ten opzichte van het vorige P-frame, dat ook beschadigd is. De laatste 2 B-frames zijn ook beschadigd omdat deze gecodeerd zijn ten opzichte van het nieuwe I-frame, dat niet beschadigd is, en het vorige P-frame, dat echter wel beschadigd is. In display volgorde zijn dan, bij beschadiging van een I-frame, alle vorige B-frames, tot aan het eerste vorige P-frame, en alle volgende B- en P- frames, tot aan het eerst volgende I- frame, beschadigd. Bij de 6/1 GOP ziet de foutpropagatie er alsvolgt uit: Encodeervolgorde (met beschadigd I-frame):...PIPPPPPIPP... Encodeervolgorde (met fout propagatie): Display volgorde (met schade propagatie):...pipppppip......pipppppip Aangezien er geen bidirectioneel gecodeerde frames (of B-frames) zijn bij deze GOPstructuur, ziet de beschadiging er in de encodeervolgorde net zo uit als in de display volgorde. Alle P-frames, volgend na het beschadigde I-frame, tot aan het volgende I-frame zijn beschadigd. Het eerste P-frame is beschadigd aangezien het relatief gecodeerd is ten opzicht van het (beschadigde) I-frame. Het tweede P-frame is beschadigd aangezien het relatief gecodeerd is ten opzichte van het vorig P-frame dat ook beschadigd is. Zo gaat het verder tot aan het I-frame dat het beeld opnieuw herstelt. Welke gegevens kan men nu extraheren uit een beschadigd bestand? In figuur 17 vindt u een voorbeeld van een kwaliteitsmeting met JNDmetrix voor de verschillende frames van een sequentie waarbij het 1 ste, het 29 ste, het 149 ste en het 164 ste I-frame beschadigd zijn. De grafiek heeft waarden gelijk aan nul indien er geen beschadiging is. Frames met een slechtere kwaliteit krijgen een grotere score. Men merkt op dat de beschadiging langer duurt dan enkel de frames die rechtstreeks beschadigd zijn, dit tengevolge van de propagatie van de beschadiging in de GOP. 41

42 JND score alleen I-frame damage GOP 15/3 (IBBPBBPBBPBBPBBI) JND score Time No Loss Time Loss Framenummer Figuur 17: JND score verloop bij beschadiging van enkele I-frames JNDmetrix zal een totaalscore berekenen dat een weergave is van de kwaliteit van de videosequentie. Er zijn echter nog een aantal andere gegevens volgend uit de JND grafiek die van belang zijn. Ten eerste zijn er de periodes gedurende dewelke er geen fouten zijn en de JND grafiek naar nul evalueert. De gemiddelde waarde van de lengte van deze periodes heet Time No Loss en wordt uitgedrukt in frames of seconden. Deze grootheid geeft dan een schatting van de tijd gedurende dewelke er geen fouten optreden. Ten tweede hebben we de gemiddelde waarde van de lengtes van de periodes gedurende dewelke er wel verlies optreedt, de Time Loss periodes. Dit zijn periodes waar de grafiek een van nul verschillende waarde aanneemt. Ten derde is er de Frame Damage, uitgedrukt in percent, die de verhouding is tussen het aantal beschadigde frames en het totaal aantal frames. Met andere woorden, deze grootheid geeft weer hoeveel percent van de film beschadigd is zonder rekening te houden met de aard van de beschadiging. 42

43 3.2. Methodologie Dergelijke kwaliteitsmetingen kan men op 2 manieren uitvoeren. Men kan een videobestand over een netwerk met gekende parameters sturen, het ontvangen bestand opnemen (capturen) en de kwaliteit analyseren. Een andere mogelijkheid is gebruik maken van een simulatieprogramma dat het bestand beschadigt volgens karakteristieken eigen aan een netwerk. Beide technieken staan verduidelijkt in figuur 18. Videobestand Beschadigd videobestand Figuur 18: Mogelijke meetopstellingen In deze thesis werd er gekozen voor de tweede methode, het simuleren. Zo n simulatieprogramma was echter niet beschikbaar en daarom werd het schrijven ervan beschouwt als deel van de opdracht voor dit werk. Het programma heet VisualDropSim en kan bestanden beschadigen volgens karakteristieken van een netwerk. De meetopstelling staat in figuur 19. Een input sequentie wordt beschadigd met VisualDropSim. In de beschadigde videosequentie ontbreken stukken data waardoor de syntax van deze sequentie niet meer consistent is. JNDmetrix kan echter geen videosequenties met een incorrecte syntax verwerken. Men dient daarom deze eerst om te zetten naar ongecomprimeerd AVI-formaat (RAW-avi)[13]. Hiervoor werd VirtualDub gebruik. Deze software tool, vrij beschikbaar op het internet, kan gecodeerde videosequenties omzetten naar ander formaat indien de codec beschikbaar is. 43

44 VirtualDub referentie videosequentie invoer videosequentie VisualDropSim beschadigde VirtualDub test videosequentie JNDmetrix videosequentie JND totaal Frame Damage Time No Loss Time Loss Figuur 19: Meetopstelling Let op de naamgeving. De referentie videosequentie en de test videosequentie zijn ongecomprimeerd avi-bestanden. De invoer videosequentie en de beschadigde videosequentie zijn in MPEG-bestanden. Het geconverteerd beschadigde bestand wordt met JNDmetrix vergeleken met zijn origineel, dat ook geconverteerd werd naar ongecomprimeerd avi-formaat. De twee inputsequenties van JNDmetrix moeten immers dezelfde encodering hebben om de invloed van de encodering te elimineren. De output is een JND-scoreverloop, zoals in figuur 17, waaruit men de verschillende gegevens kan extraheren Synchronisatieprobleem Indien er in de beschadigde videosequentie een frame verloren gaat, door bijvoorbeeld het wegvallen van een GOP-header, zijn de referentiesequentie en de beschadigde testsequentie niet meer synchroon. Bij het analyseren van deze bestanden met JNDmetrix treden er dan problemen op. JNDmetrix houdt geen rekening met dit verschil in aantal frames en gaat dus vanaf een bepaald moment het huidig frame in de referentiesequentie vergelijken met het 44

45 volgend frame in het testsequentie. JNDmetrix zal dan een van nul verschillende score geven aan dit frame en alle volgende frames aangezien de verkeerde frames worden vergeleken. Dit heeft voor gevolg dat JND een score zal geven die foutief is en geen correcte weergave is van de kwaliteit van het bestand. In figuur 20 staan twee JND-grafieken, een waarbij geen frames zijn weggevallen en een waarbij er wel frames zijn weggevallen. 25 JND ifv framenummer 20 Synchroon JND framenummer JND ifv framenummer Niet synchroon JND framenummer Figuur 20: JND-scores: met en zonder synchronisatie Het verschil tussen de grafieken is duidelijk. Wanneer het aantal frames gelijk blijft in test- en referentiesequentie zal JNDmetrix naar nul evalueren wanneer de 2 exact identiek zijn. Wanneer er echter een of meerdere frames wegvallen zal de score nimmer naar nul evalueren alsof de gehele sequentie een veel slechtere kwaliteit heeft. Dit brengt met zich mee dit het niet mogelijk was om pakketizatieschema s, waarbij er frames kunnen wegvallen, te onderzoeken. Deze schema s zijn het UDP pakketizatieschema en het 45

46 RTP pakketizatieschema. Alle metingen besproken in hoofdstuk 5 zijn dan ook uitgevoerd met het UDP no headers pakketzatieschema (zie ). 46

47 Hoofdstuk 4 Software Tools: JND en VisualDropSim Om de kwaliteitsmetingen te kunnen uit voeren, diende ik me te beroepen op een aantal bestaande sofware tools zoals JNDmetrix, voor het vergelijken van de beschadigd videobestand met de referentie videobestand, en VirtualDub 9 (freeware), voor het omzetten naar niet-gecomprimeerd avi-formaat (raw-avi). Het was echter ook nodig van zelf een simulatieprogramma te schrijven dat pakketverlies simuleert. Dit programma heet VisualDropSim. De naam is vrij logisch onstaan. Visual vanwege de eenvoudig windows GUI. Drop aangezien het programma pakketten dropt (of negeert) en niet naar het uitvoerbestand schrijft. Sim aangezien het programma een netwerk tracht te simuleren met een aantal instelbare parameters. In de volgende hoofdstukken wordt er nader uitleg gegeven bij VirtualDub, JNDmetrix en VisualDropSim VirtualDub Dit is een software tool dat vooral gebruikt wordt om videosequenties mee te bewerken. Men kan ermee frames knippen en plakken, helderheid en scherpte aanpassen, converteren, enz. Als een bepaalde codec geïnstalleerd is kan VirtualDub videosequenties converteren naar

48 deze codec [10]. VirtualDub kan echter ook de sequentie converteren naar nietgecomprimeerd formaat (wat resulteert in zeer grote bestanden). Het is deze eigenschap dat werd gebruikt bij de kwaliteitsmetingen. Zoals gezegd kan JNDmetrix geen beschadigde videosequenties verwerken. VirtualDub echter wel. Alle beschadigde bestanden dienden dus eerst door VirtualDub te worden geconverteerd waarna de kwaliteit kon worden geanalyseerd. VirtualDub biedt ook de mogelijkheid van het programma op te starten in een DOS-omgeving waarbij men een via een script bestand meegeeft wat het programma dient te doen. In figuur 21 staat een voorbeeld van een script bestand. VirtualDub.Open("E:\\eindwerk\\Testmap\\src10_ref sif_cbr_0320_u500ul.m1v", 0,0); VirtualDub.audio.SetSource(1); VirtualDub.audio.SetMode(0); VirtualDub.audio.SetInterleave(1,500,1,0,0); VirtualDub.audio.SetClipMode(1,1); VirtualDub.audio.SetConversion(0,0,0,0,0); VirtualDub.audio.SetVolume(); VirtualDub.audio.SetCompression(); VirtualDub.video.SetDepth(24,24); VirtualDub.video.SetMode(3); VirtualDub.video.SetFrameRate(0,1); VirtualDub.video.SetIVTC(0,0,-1,0); VirtualDub.video.SetRange(0,0); VirtualDub.video.SetCompression(); VirtualDub.video.filters.Clear(); VirtualDub.subset.Delete(); VirtualDub.SaveAVI("E:\\eindwerk\\Testmap\\src10_ref sif_cbr_0320_u500ul.av i"); Figuur 21: Voorbeeld van een VirtualDub script bestand De eerste regel bevat het invoer bestand dat dient te worden bewerkt. De volgende regels zijn de instellingen nodig voor conversie naar RAW avi-formaat. Deze regels zijn gekopieerd uit een voorbeeld script bestand dat dergelijke conversie realiseert. De laatste regel tenslotte bevat de naam van het uitvoerbestand. 48

49 4.2. VisualDropSim VisualDropSim is een netwerksimulatieprogramma dat MPEG-1 videostreams kan beschadigen. Het beschadigen gebeurt door stukken data uit het bestand te verwijderen. Het programma is gecompileerd voor een Windows platform. In een eerste paragraaf wordt het model van het programma verduidelijkt waarna ik overga tot specifiëring van de functionaliteit en instelbare parameters. Een duidelijke gebruikershandleiding vindt u in bijlage A Model Het programma is geschreven in c++ met behulp van Visual Studio 6.0. In een eerste fase schreef ik een command line applicatie, later werd er een grafische interface voorzien. Het model staat in figuur 22. Het invoerbestand wordt gebufferd en uitgelezen door een packetizer. Deze pakketizeert volgens instelbare grootte het bestand in pakketjes. De packetizer geeft ook mee of dit pakket al of niet mág verloren gaan. Men heeft immers de mogelijkheid om mee te geven dat een bepaald pakket niet mag verloren gaan. Dit pakket kan bijvoorbeeld cruciale informatie bevatten dat naar het outputbestand moet geschreven worden. De receiver ontvangt het pakket en, indien het mág verloren gaan, vraagt aan de dropcontroller of het moet verloren gaan. De dropcontroller is een soort instelbare random generator, die bepaalt of een pakket al of niet moet verloren gaan. Indien niet, wordt het geschreven naar een uitvoer bestand, via een outputbuffer. Een gezamenlijk object, options, houdt de opties, zoals pakketgrootte, bij en is voor elk element.toegankelijk. Op deze manier werd het programma opgedeeld in enkele klassen met een goed gestructureerde interface. De GUI, geschreven met behulp van MFC(Microsoft Foundation Classes) werd later geschreven. 49

50 Inputfile Options Dropcontroller True/false Inputbuffer Get(Packetsize) data Packetizer Packet data Receiver Outputbuffer Outputfile Figuur 22: Model VisualDropSim Functionaliteit De functionaliteit diende van die aard te zijn dat zij een netwerk, met een aantal karakteristieke kenmerken, kan simuleren. Kenmerken van een netwerk zijn bitfouten en, daarmee samenhorend, pakketverlies, opstropping (congestion), jitter, delay, enz. Al deze problemen die in een netwerk kunnen optreden, kunnen gemodelleerd worden met 1 parameter, namelijk pakketverlies. Deze parameter is dan ook aanwezig in het programma en is instelbaar. Ook het statistisch model volgens hetwelke er pakketverlies optreedt, als het pakketizatieschema is instelbaar. Het programma biedt ook de mogelijkheid van het volledige meetproces, zoals in figuur 20, zelf uit te voeren. VisualDropSim kan VirtualDub scripts en JNDmetrix scripts generen om daarna zelf, na het beschadigen, de betreffende programma s op te roepen. Hiervoor genereert VisualDropSim een batch bestand (*.bat) dat hij zelf start. In figuur 23 staat een voorbeeld van zo een batch bestand. 50

51 C:\PROGRA~1\virtualdub /se:\eindwerk\testmap\vdscript.vcf /x C:\PROGRA~1\virtualdub /se:\eindwerk\testmap \settings1.vcf /x C:\PROGRA~1\jndbatch -ini E:\eindwerk\Testmap\start1.ini del E:\eindwerk\Testmap\Inpufile1.avi Figuur 23: Voorbeeld van een door VisualDropSim gegenereerd batch bestand De eerste regel roept VirtualDub op met het script: Vdscript.vcf (zie figuur 23). Dit is voor de conversie van het invoerbestand (in MPEG-formaat) naar het referentiebestand (in RAW avi-formaat) (zie figuur 21). De tweede regel roept VirtualDub op met het script: settings1.vcf. Dit converteert de beschadigde sequentie (in MPEG-formaat) naar de test sequentie (in RAW avi-formaat). Vervolgens wordt JNDmetrix opgeroepen met het script: start1.ini. Nadat JNDmetrix het bestand heeft geanalyseerd wordt het verwijderd. Dit is de laatste regel in het batchbestand. Men heeft ook de mogelijkheid van één bestand een aantal keer te beschadigen volgens verschillende parameters. Men kan bijvoorbeeld meerdere pakketlengtes en pakketverliezen opgeven. VisualDropSim zal dan het invoerbestand beschadigen met alle combinaties van de ingestelde parameters. De verschillende beschadigde uitvoerbestanden worden dan in verschillende mappen, die ook zelf worden aangemaakt, geplaatst Statistisch model Er werden 2 modellen geïmplementeerd. Een eerste is uniforme pakket verlies. Elk pakket heeft een even grote kans om verloren te gaan, onafhankelijk van de vorige pakketten. Dit is instelbaar met één parameter. Het effectief pakketverlies, het aantal pakketten dat effectief verloren ging, kan echter wel verschillen van de ingestelde waarde. Als het bestand bijvoorbeeld slechts uit 1 pakket bestaat en dit pakket wordt toevallig niet verloren gaat dan is het effectieve pakket verlies 0% terwijl het opgegeven pakketverlies eender welke waarde kon 51

52 hebben. Dit model simuleert een netwerk in normale toestand met nu en dan een pakket dat verloren gaat. Een tweede model, bursty packet loss, kan een netwerk simuleren dat gedurende bepaalde periodes gekenmerkt wordt door veel pakketverlies. Dit wordt gemodeleerd door een Markovketen van de 2 de orde [6]. In figuur 24 staat het model voorgesteld. 1-α α No Loss Loss β 1-β Figuur 24: Statistisch model: bursty loss Met α de kans om in toestand van geen verlies te blijven en β de kans om in verliestoestand te blijven. Beide lussen zijn Bernoulli distributies, elk gekenmerkt door 1 parameter, α of β. Hierbij weten we dat het gemiddeld aantal keer dat we in een bepaalde toestand blijven is: 1 N α = of N 1 α β 1 = 1 β Men kan dus het bursty model op 2 manieren configureren, ofwel geeft men de parameters α en β op, ofwel geeft men N α en N β op. De α parameter bepaalt de duur dat men in de No Loss toestand blijft. Kleine α betekent dus dat men frequent naar de Loss -toestand gaat overgaat. De β parameter bepaald de duur dat men in de Loss -toestand blijft of de lengtes van de Loss -periodes. Met elk α-β koppel komt telkens een gemiddeld pakketverlies overeen. In onderstaande tabel staan enkele voorbeelden uitgewerkt. Men merkt op dat indien de verliesperiodes kort zijn en niet frequent voorkomen, het pakketverlies klein is. 52

53 verliesperiodes α Β N N α β PL(%) Lang, weinig frequent Kort, weinig frequent Lang, frequent Kort, frequent Tabel 6: α-β koppels met overeenkomstig pakket verlies Pakketizatie methode Er werden 3 verschillende pakketizatiemethodes geïmplementeerd: UDP, UDP no headers en RTP. Het eerste en eenvoudigste pakketizatieschema is UDP. Hierbij worden er pakketjes samengesteld onafhankelijk van de inhoud en met een vaste lengte. Figuur 25 verduidelijkt. Video stream: SEH GOP PH SH Slice SH Slice Pakketizatieschema: Figuur 25: Pakketizatieschema: UDP SEH: sequence header GOP: group of pictures header PH: picture header SH: slice header Dit heeft voor gevolg dat informatie die samenhoort kan verdeeld zijn over verschillende pakketten. Zo zal bijvoorbeeld in figuur 25 de slice-informatie van de eerste slice verdeeld zijn over 2 pakketten. Ook de headers kunnen verspreid zijn over verschillende pakketten. Dit brengt met zich mee dat indien er één pakket wegvalt of beschadigd raakt meer beschadigd wordt dan enkel de data die het transporteert. Zo zal in figuur 25, indien het eerste pakket wegvalt, de sequence-header wegvallen maar ook de daaropvolgende GOP-header wordt 53

54 onbruikbaar. Nog een gevolg van dit pakketizatieschema is dat indien er een picture-header of GOP-header wegvalt meerdere frames beschadigd zullen zijn of zelfs volledig wegvallen. De player verwacht immers, na een bijvoorbeeld een GOP-header, een picture-header. Hij zal dus zoeken naar de picture-header in de bitstream. Indien deze is weggevallen zal hij naar de volgende correcte picture-header doorschuiven. Met andere woorden, door het wegvallen van de picture-header zal de player alle slice informatie van dat beeld overslaan en naar de volgende picture-header kijken. Het frame (of picture) is dus volledig weggevallen. Omwille van deze redenen heb ik een 2 de pakketizatieschema geïmplementeerd, namelijk UDP zonder headers. Volgens deze optie zijn de sequence-, GOP- en picture-headers niet onderhevig aan pakketverlies en worden ze rechtstreeks gekopieerd naar het uitvoerbestand. Het schema staat in figuur 26. Video stream: SEH GOP PH SH Slice SH Slice Pakketizatieschema: Er wordt een pakket opgesteld met headers dat naar het uitvoerbestand wordt geschreven. Figuur 26: Pakketizatieschema: UDP no headers Er wordt dus enkel gepakketizeerd in de slice layer, inclusief slice headers. Dit heeft voor gevolg dat er geen frames verloren gaan, enkel de slices in een frame worden beschadigd. Zelfs indien alle slices in een frame verloren gaan, behouden we nog altijd het frame zij het weliswaar volledig leeg. Dit pakketizatieschema behoudt dus het totaal aantal frames. Dit is nuttig omdat het aantal frames van het beschadigde bestand even groot is als het aantal frames in het invoerbestand. Bij de kwaliteitsmeting dient men dan geen rekening te houden met weggevallen frames. Een derde pakketizatieschema, RTP, is het schema volgens de RFC 2250 standaard. Deze standaard stelt een pakketizatieschema voor, voor transport via RTP. Volgens dit schema worden de pakketten op een intelligente manier opgemaakt. Figuur 27 schetst het schema. 54

55 Video stream: SEH GOP PH SH Slice PH SH Slice Pakketizatie- schema: Figuur 27: Pakketizatieschema: RFC 2250 Enkele regels bepalen het schema (de volledige standaard vindt u ook terug in bijlage B): De MPEG video sequence header moet zich altijd aan het begin van een pakket bevinden. De MPEG GOP-header moet zich altijd aan het begin van een pakket bevinden of volgen na de video sequence header De MPEG picture header moet zich altijd aan het begin van een pakket bevinden of volgen na de GOP header. Dergelijk pakketizatieschema beschermt de videosequentie beter tegen pakketverlies aangezien samenhorende informatie niet verdeeld wordt over meerdere pakketten. Indien men een header zou gaan splitsen over twee pakketten (zoals bij het pakketizatieschema UDP kan voorkomen) en één van de twee pakketten gaat verloren dan is het andere pakket zeker onbruikbaar. Met het RTP -pakketizatieschema wordt er netjes op de grens van de data gesplitst. Hierdoor is het, bij verlies van één pakket, niet zeker dat het tweede pakket ook onbruikbaar wordt GUI In figuur 28 vindt u de GUI. 55

56 Figuur 28: Graphical User Interface van VisualDropSim Het programma is in staat verschillende metingen sequentieel uit te voeren. De 3 knoppen Set packetlength, Set uniform packet loss en Set bursty packet loss openen een nieuw dialoogvenster waarin u de verschillende waarden kan invullen. Zo kan men in Set packet length een aantal pakketlengtes instellen en in Set uniform packet loss een aantal waarden voor het pakketverlies. De simulaties worden dan uitgevoerd bij alle combinaties van deze waarden. Ook kan men in het Repeat Measurements invulvak ingeven hoeveel keer de simulatie voor een bepaalde instelling dient te worden herhaald. Het programma creëert zelf een directorystructuur waarin het de resultaten plaatst. Per ingegeven pakketlengte wordt er een nieuwe directory aangemaakt met de naam: pctsz gevolgd door de pakketlengte in bytes. Per herhaalde meting wordt er een nieuwe directory aangemaakt met de naam: r gevolgd door een nummer. In het Batch Options dialoogvenster kan u ingeven waar de JND-batch executable staat en waar VirtualDub zich bevindt. VisualDropSim kan dan, na de simulaties, zelf VirtualDub en JNDmetrix opstarten met behulp van zelf gecreëerde scripts om de kwaliteit van het bestand te analyseren. Meer informatie omtrent VisualDropSim en een korte handleiding kan je terugvinden in bijlage B. 56

57 Input & Output Het programma kan MPEG-1 videostreams verwerken. Dit zijn streams die enkel visuele informatie bevatten. De uitvoer is een beschadigde MPEG-1 videostreams, VirtualDub scripts, JND scripts, een batch bestand en logbestand. De scripts worden gebruikt voor het uitvoeren van de conversies en het starten van de kwaliteitsmetingen. VisualDropSim genereert een log bestand waarin er allerlei gegevens over het invoerbestand en omtrent de beschadiging staan, zie figuur 29 voor het 1 ste deel van het log bestand. De informatie over de invoervideosequentie zelf zijn de bitsnelheid, de GOP, framerate, resolutie, enz. Ook het effectieve pakketverlies en het byteverlies dat is opgetreden staan vermeld. Ook de Time No Loss, de Time Loss en de Frame Damage staan hier vermeld. 57

58 FILEINFO filename: src10_ref sif_cbr_0320.m1v Pel_Aspect_Ratio: , CCIR Rec. 601, 625-line Picture size: 360 * 288 Nominal picture rate: 25 fps Average bitrate: 320 Kbits/s GOP structure: 15/3 (IBBPBBPBBPBBPBBI) Total I frames: 15 Total P frames: 59 Total B frames: 146 Total frames: 220 Total time: 8.8 sec DROPINFO Packetizationmethod: UDP no headers Packetsize: 1500 Statistical model: Uniform loss Packetloss: 5% packetinfo Total packets: 351 Packets dropped: 26 Packets not dropped: 325 Real Packetloss: byteinfo Total bytes: Bytes dropped: Bytes not dropped: Bytes outputfile: Real Byteloss: frameinfo Total frame damage: I frame damage: 0.4 P frame damage: B frame damage: timeinfo Average time loss: frames or sec Average time no loss: 7 frames or 0.28 sec info Average packets/i-frame: Average packets/p-frame: Average packets/b-frame: 1 Figuur 29: 1 ste deel van het output log bestand Indien het UDP zonder headers pakketizatieschema werd gebruikt; staan er ook 2 tabellen in die informatie omtrent de beschadigde frames geven. In de eerste tabel, zie figuur 30, staat 58

59 welke frames er beschadigd zijn, welk type frame dit was, uit hoeveel pakketten dit frame bestaat en welk van deze pakketten is weggevallen. Figuur 30: 2 de deel van het output log bestand De tweede tabel, zie figuur 31, bestaat uit 4 kolommen. In de eerste staat het framenummer in display volgorde. In de tweede het type frame, in de derde of dit frame rechtstreeks beschadigd is (met een 1 of een 0), in de vierde kolom staat er of dit frame beschadigd is zowel rechtstreeks als onrechtreeks en in de laatste kolom staat het aantal pakketten waaruit dit frame bestaat. Figuur 31: 3 de deel van het output log bestand 59

60 4.3. JNDmetrix De kwaliteit van de videobestanden werd gemeten met JNDmetrix [9]. JND staat voor Just Noticable Difference. Deze software tool vergelijkt 2 sequenties frame per frame rekening houdend met de karakteristieken van het menselijke oog. JND metrix simuleert het optisch verwerkingsproces van het menselijk visuele systeem om input data te converteren naar een psychofysisch gedefinieerde kleurenruimte, te filteren en het beeld te ontleden in verschillende spatiale frequenties en richtingen, en dan het verschil berekent tussen de beelden gebaseerd het niet-lineaire gedrag van het visueel systeem JND-waarden JNDmetrix geeft en score aan elk beeld dat is vergeleken. De gevolgde redenering is de volgende: zijn de 2 beelden exact hetzelfde dan geeft JNDmetrix deze een waarde van 0 JND. Zijn er verschillen dan krijgt dit frame een van 0 verschillende score waarbij 1JND overeenkomt met de kans dat een waarnemer met een probabiliteit van 75% een verschil ziet tussen de twee frames. De ontwerpers van JND stellen dat bij een score onder 1 JND er geen verschil merkbaar is tussen de twee beelden, zelfs al weet men op voorhand de exacte plaats en aard van verschil. Bij een score onder 3 JND is er nog altijd geen merkbaar verschil, hoewel de verschillen zichtbaar zijn als de waarnemer de exacte locatie in het beeld weet. Bij 5 JND zijn de verschillen duidelijk zichtbaar. Al deze individuele scores worden dan volgens onderstaande formule opgeteld tot een totale JND score. Hierbij stelt men dat een score onder de 4 JND overeenkomt met DVD kwaliteit en tussen de 4 en 6 JND spreekt men van TV kwaliteit. Hoger dan 6 is slechte kwaliteit. JND Totaal = 4 ( JND ) T i 4, met T het totaal aantal frames 60

61 Hoofdstuk 5 Resultaten 5.1. Coderings en netwerkparameters Verschillende parameters gaan invloed hebben op de kwaliteit van het videobestand na pakketverlies. Een aantal hiervan is onderzocht. Enerzijds zijn er de codering parameters zijnde de bitsnelheid, constant of variabele bitsnelheid en de GOP-structuur, anderzijds zijn er de netwerkparameters zijnde de maximale pakketlengte en het pakketverlies. Zoals uitgelegd in hoofdstuk is er geen onderzoek gedaan naar de invloed van het pakketizatieschema aangezien er geen pakketizatieschema s kunnen onderzocht worden die het verlies van volledige frames met zich meebrengen, tengevolge van het JNDmetrix synchronisatieprobleem. Alle simulaties zijn dan ook uitgevoerd met het UDP zonder headers pakketizatieschema, dat het totaal aantal frames behoudt. Er dient ook te worden vermeld dat de kwaliteitsmetingen uitgevoerd met JNDmetrix geen rekening houden met de kwaliteit van de videosequentie zelf. Indien men dus de invloed van pakketverlies op een bestand, geëncodeerd met bepaalde parameters, gaat nameten, gaat men geen rekening houden met de kwaliteit van die videosequentie. Men gaat enkel de invloed van dataverlies onderzoeken. Er werd gekozen voor een volgende set van testsequenties (lengte 3516 frames of 140 s): Lage resolutie (360*288): 320, 512 en 768 kbit/s Hoge resolutie (720*576): 1000,1500, 2500, 5000 kbit/s 61

62 , zowel variabele als constante bitsnelheid. Alle sequenties hebben een 15/3 GOP-structuur en hebben dezelfde beeldinhoud, namelijk hoofdstuk 4 van de animatiefilm Shrek. In grafiek 32 vindt u, voor deze bitsnelheden, het aantal pakketten van 1500 bytes nodig voor het transport van de verschillende types frames. Aantal pakketten van 1500 bytes in I,P of B frame I-frame P-frame B-frame Pakketten Bitrate (kbit/s) Figuur 32: Aantal pakketten van 1500 bytes nodig voor verschillende types frames bij verschillende bitsnelheden voor het UDP no headers packetizatieschema De I-frames zijn voor alle bitsnelheden het grootst, dit tengevolge van de intra-codering toegepast op dit type frame. Daarna volgen de P-frames en vervolgens de B-frames. De I- frames stellen dus zowel de grootste hoeveelheid data voor als de belangrijkste data, aangezien alle andere frames rechtstreeks of onrechtstreeks gecodeerd zijn ten opzichte van deze I-frames. 62

63 Vehouding aantal pakketten van 1500 bytes in I,P of B frame B-frame P-frame I-frame 100% 80% 60% Pakketten 40% 20% 0% Bitrate (kbit/s) Figuur 33: Verhouding tussen I/P/B pakketten bij verschillende bitsnelheden In figuur 33 merkt men dat de I/P/B verhouding ongeveer gelijk is voor alle bitsnelheden. Behalve voor 5Mbit/s waar het aantal P en B pakketten iets groter is. Bij deze bitsnelheid komen er meer bits vrij voor de P- en B-frames want zelfs als de I-frames voldoende fijn gecodeerd zijn hebben we veel meer bits over dan bij lagere bitsnelheid. Deze komen dan ter beschikking van de P- en B- frames die dan fijner kunnen gecodeerd worden waardoor ze groter worden. Men merkt dit ook op als men het aantal pakketten voor de verschillende frames uitzet in functie van de bitsnelheid. Dit wordt getoond in figuur 34. Het aantal pakketten stijgt proportioneel tot aan 2500 kbit/s. Vanaf deze bitsnelheid gaan er relatief meer bits door P- en B- frames worden gebruikt waardoor de grote van deze frames proportioneel meer gaan stijgen. 63

64 I,P,B pakketten ifv de bitrate 60 I P B aantal pakketten bitrate (kbit/s) Figuur 34: Aantal pakketten nodig voor de 3 types frames bij verschillende bitsnelheden 5.2. Invloed van de pakketlengte Voor deze metingen ben ik gestart van een pakketlengte van 1500 bytes. Daarna zijn er simulaties uitgevoerd bij 3000 en 500 bytes. In grafiek 35 staat een de JND-score in functie van het pakketverlies (logaritmisch) voor een bitsnelheid van 2,5 Mbit/s bij pakketlengtes van 1500 en 3000 bytes. 64

65 kbit/s CBR 1500 bytes 3000 bytes JND score pakket loss Figuur 35: JND-score ifv pakketlengte bij 2500 bit/s Men merkt op dat de JND-score gemiddeld 1 à 2 grootheden zakt bij verdubbeling van de pakketlengte. Dit is te verklaren aan de hand van figuur 32 Aangezien beschadiging van een I-frame inhoudt dat alle frames tot aan het volgende I-frame en enkele vorige B-frames beschadigd zijn, kunnen we stellen dat dergelijke beschadiging het grootste kwaliteitsverlies meebrengt. Uit de grafiek in figuur 32 haalt men dan dat de I-frames bij deze bitsnelheid gemiddeld uit 43 pakketten van 1500 bytes bestaan. En elk pakket met een bepaalde uniforme kans, p, op verlies. De kans dat een I-frame verloren gaat is dan [1-(1- p) 43 ]. Bij verdubbeling van de pakketlengte bedraagt dit [1-(1-p) 43/2 ]. Voor een pakketverlies van 1% evalueert deze kans voor pakketlengte 1500 bytes naar en voor 3000 bytes naar De kans op verlies van een I-frame wordt dus 55 % kleiner bij verdubbeling van de pakketgrootte en het effect daarvan is dat de kwaliteit van de videosequentie verbetert. Grafiek 36 geeft de gemiddelde duur van periodes gedurende dewelke er geen schade is, de Time No Loss, voor de verschillende pakketgroottes voor een bitsnelheid van 2.5 Mbit/s. 65

66 Time No Loss ifv pakketlengte Time No Loss (frames) % 0.10% 0.01% pakketlengte (bytes) Figuur 36: Gemiddelde tijd (in frames) van periodes zonder schade in functie van de pakketlengte Men merkt op dat de Time No Loss ongeveer evenredig toeneemt met de pakketgrootte. Nemen we als voorbeeld een pakket verlies van 0.01% en pakketlengte 1500 bytes dan bedraagt de Time No Loss ongeveer 800 frames of 32 (800 frames 0.04 s/frame) seconden. Fragmenteren we dit pakket in 3 pakketjes van 500 bytes dan zal de Time No Loss net iets meer dan 400 frames of 16 seconden bedragen. Door het feit dat men bij het gebruik van grotere pakketten meer data onbeschadigd laat ( of minder data gaat verliezen) zal de gemiddelde duur van de periodes gedurende dewelke men geen storing ondervindt langer duren. 66

67 Frame Damage (2500kbps,cbr) Frame Damage(%) % % PacketLoss Packetsize 500bytes Packetsize 1500bytes Packetsize 3000bytes Figuur 37: Frame Damage(%) in functie van pakketverlies voor verschillende pakketlengtes. In grafiek 37 staat de Frame Damage uitgezet bij verschillende pakketlengtes. Hier leiden we af dat de invloed van de pakketlengte op de Frame Damage kleiner wordt bij kleinere pakketverliezen. Bij fragmentatie van een pakket van 1500 bytes naar 3 van 500 bytes zal in een netwerk met vast 10 een pakketverlies van 1% de Frame Damage stijgen met ongeveer 35% terwijl voor 0.1% pakketverlies dit slechts 12% zal bedragen. Dit is te verklaren aan de hand van figuur 38. In deze grafiek is de Frame Loss uitgezet in functie van het aantal pakketten waaruit dit frame bestaat en dit voor verschillende pakket verliezen. De kans dat een frame, bestaande uit een aantal pakketten, verloren gaat is gelijk aan 1-(1-p) aantal pakketten, met p de kans dat een pakket verloren gaat of het pakketverlies. 10 Normaal zullen grotere pakketten meer kans hebben om verloren te gaan 67

68 Frame Loss ifv aantal pakketten Frame Loss % 21% 1% 0.5% 0.1% aantal pakketten Figuur 38: Frame Loss in functie van het aantal pakketten bij verschillende pakket verliezen (1-(1-p) aantal pakketten ) In deze grafiek (figuur 38) wordt helling bepaald door het pakketverlies. Deze zal vlakker liggen voor kleine pakketverliezen dan voor grotere pakketverliezen. Dus de invloed van de pakketlengte (of aantal pakketten) op het totale Frame Loss zal kleiner zijn bij lagere pakketverliezen dan bij grotere pakketverliezen. In figuur 39 staat tenslotte de invloed van de pakketgrootte zowel voor hoge bitsnelheid als lage bitsnelheid. Hier is duidelijk af te leiden dat de invloed van de pakketlengte groter is voor hogere bitsnelheden dan voor kleinere bitsnelheden. 68

69 JND ifv (bitrate, pakketsize) bij CBR kbit/s (1500) 5000 kbit/s (3000) 512 kbit/s (1500) 512 kbit/s (3000) 12 JND score PakketLoss Figuur 39: Invloed van de pakketlengte bij verschillende bitsnelheden Dit is eenvoudig te verklaren aan de hand van figuur 32. Een I-frame zal bij deze hogere bitsnelheid veel groter zijn, waardoor de invloed van de pakketlengte groter zal zijn. Bij een bitsnelheid van 5 Mbit/s bestaat het I-frame uit ongeveer 48 pakketten van 1500 bytes. Verdubbelen we de pakketgrootte dan bestaat het I-frame uit 24 pakketten. We zien nu in figuur 38 dat, bij een pakket verlies 0.5%, de kans op I-frame verlies zakt van 21% bij 48 pakketten naar 11% bij 24 pakketten (aangeduid in de figuur). Bij een lagere bitsnelheid van 512 kbit/s bestaat een I-frame uit ongeveer 10 pakketten van 1500 bytes. Verdubbelen we ook hier de pakketlengte dan zal de Frame Loss, bij hetzelfde pakketverlies van 0.5%, dalen van 5% naar 2.5%. Uit deze grafieken kunnen we al besluiten dat, hoe groter het pakket, hoe minder kans een I- frame beschadigd raakt en dus, hoe beter de kwaliteit en hoe kleiner het aantal storingen. 69

70 5.3. Invloed van de bitsnelheid JND bij verschillende bitrates (CBR) JND score kbit/s 512 kbit/s kbit/s 1500 kbit/s 2500 kbit/s kbit/s Pakket Loss Figuur 40: JND-scores bij verschillende bitsnelheden In figuur 40 staan de gemeten JND-scores voor de verschillende bitsnelheden. Voor een realistisch netwerk, met een pakketverlies van 1%, is het kwaliteitsverlies zelfs voor de laagste bitsnelheid van 320 kbit/s nog altijd hoger dan 6 JND. Men moet al minder dan 0.5% pakketverlies hebben opdat men deze kleine bitsnelheid zou kunnen streamen zonder al te veel kwaliteitsverlies. Wil men een videobestand van hogere bitsnelheid en grotere resolutie, bv. 2,5 Mbit/s, streamen dan mag het pakketverlies van het netwerk maximaal 0.01% bedragen. Voor 1,5 Mbit/s mag dit al iets hoger zijn maar men dient dan wel rekening te houden met de door de encodering slechtere kwaliteit van de video zelf. In figuur 41 staat de gemiddelde duur van de periodes gedurende dewelke er geen verlies optreedt, de zogenaamde Time No Loss -periodes. 70

71 Time No Loss (sec bij 25fps, pakketlengte 1500bytes) (log-log) 100 Time No Loss (sec) Pakket loss 320 kbit/s 512 kbit/s 768 kbit/s 2500 kbit/s 1500 kbit/s 5000 kbit/s Figuur 41: Time No Loss bij verschillende bitsnelheden Voor een pakketverlies van 1% varieert dit tussen de 0,2s voor de hoogste bitsnelheid en 2,2s voor de laagste bitsnelheid. Voor 0,1% zijn deze waarden 2.4 s en 11s. Zelfs bij lage verliezen zijn deze waarden vrij groot. Men dient echter wel rekening te houden met de grafiek in figuur 42. Hierin staat de gemiddelde duur van periodes gedurende dewelke er schade is, de Time Loss -periodes. Men merkt op dat deze niet veel variëren voor de verschillende bitsnelheden en rond de 0,4 seconden liggen. Bij 0.1% pakket verlies varieert de Time No Loss.tussen 2.4s voor de grootste bitsnelheid en 11s voor de kleinste bitsnelheid en bedraagt de Time Loss 0.4s. We kunnen dus stellen dat bij de kleinste bitsnelheid gedurende 3.5% (0.4s / 11.4 s = ) van de volledige duur van sequentie storingen of schade gaan ondervinden. Bij de grotere bitsnelheid bedraagt deze waarde 14.3% (0.4 s / 2.8 s =0.1428). Gedurende 14.3% van de volledige sequentie is de video beschadigd of 14.3% van de frames zijn beschadigd. Dit is met andere woorden de Frame Damage, onrechtstreeks gemeten. Indien men in figuur 43, waar de rechtstreeks gemeten Frame Damage is uitgezet, gaat kijken naar de Frame Damage bij dit pakketverlies van 0.1% dan varieert deze tussen 2 % voor de kleinste bitsnelheid en 12.8 % voor de grootste bitsnelheid. Buiten het kleine verschil van 1.5% komen deze resultaten goed overeen. De totale Frame Damage kan dus op twee wijzen worden berekend: rechtsreeks 71

72 verifiëren hoeveel frames er beschadigd zijn, of onrechtreeks berekenen uit de Time No Loss en de Time Loss waarden. Time Loss (in sec bij 25fps), pakketlengte 1500 bytes Time Loss (sec) kbit/s 512 kbit/s 768 kbit/s 1500 kbit/s 5000 kbit/s Pakket Loss Figuur 42: Gemiddelde duur van Loss periodes Het feit dat deze storingen niet langer dan 0.5s duren heeft te maken met de GOP-structuur. De lengte van de GOP bepaalt immers de maximale propagatielengte van een storing. Bij beschadiging van één I-frame zal deze schade propageren tot aan het volgende I-frame, dat het beeld vernieuwt. Bij een 15/3 GOP zal de maximale propagatielengte dus 15 frames of 0.6s (0.04*15) bedragen. Gemiddeld zal de lengte van de foutperiodes dan ook lager liggen dan deze waarde aangezien niet alleen I-frames beschadigd worden maar ook P- en B-frames. Deze genereren kortere foutperiodes wat resulteert in een gemiddelde lager dan de GOPlengte. Hieruit kunnen we besluiten dat GOP zo kort mogelijke moet genomen worden opdat de duur van de beschadiging zo kort mogelijk zou zijn. Verder in dit hoofdstuk zal echter blijken dat de GOP niet zomaar zo kort mogelijk mag genomen worden. Er spelen immers andere factoren een rol. 72

73 Grafiek 43 stelt de Frame Damage voor voor de verschillende bitsnelheden. Uit deze grafiek kan men afleiden dat hogere bitsnelheden meer Frame Damage met zich meebrengen. Voor een netwerk met een pakketverlies van 1% is, voor een bitsnelheid van 2,5Mbit/s, de Frame Damage groter dan 50%. Dit wil dus zeggen dat meer dan de helft van de videosequentie beschadigd is. Bij de laagste bitsnelheid bedraagt dit nog 12%. We zien ook dat indien men een netwerk kan realiseren met extreem lage verliezen (<0.01%), zelfs bij een sequentie met de hoogste bitsnelheid, de Frame Damage kleiner wordt dan 3%. Frame Damage (Packet:1500bytes) framedamage(%) kbit/s 512 kbit/s 1000 kbit/s 2500 kbit/s 768 kbit/s 5000 kbit/s % 2% Packet Loss Figuur 43: Frame Damage bij verschillende bitsnelheden De reden dat de Frame Damage stijgt bij grotere pakketverliezen is als volgt te verklaren: Nemen we als voorbleeld de I-frames. Het aantal pakketten per I-frame daalt met de bitsnelheid. Uit figuur 32 volgt dat we bij 5 Mbit/s ongeveer 49 pakketten/i-frame en bij 320 kbit/s 7 pakketten/i-frame hebben. Uit figuur 38 leiden we af dat de Frame Loss groter wordt indien het aantal pakketten/frame stijgt. We hebben bij hogere bitsnelheden meer pakketten/frame, en dus ook meer Frame Loss, en meer Frame Loss genereert meer Frame Damage door propagatie van de schade. 73

74 5.4. Invloed van de GOP-structuur De GOP-structuur zal een grote invloed hebben op het totaal aantal beschadigde frames en dus op de Frame Damage. Om de invloed van de GOP-structuur te onderzoeken heb ik een videosequentie met een bitsnelheid van 2,5Mbit/s beschadigd met 0.1% pakketverlies en dit voor een aantal verschillende structuren. Hierbij werd onder andere de JND-score van het beschadigd bestand ten opzichte van zijn origineel uitgezet (linkse kolom). Met andere woorden, voor het analyseren van de 1/1 GOP-structuur werd een videosequentie van 2,5Mbit/s met GOP 1/1 vergeleken met zijn beschadigde versie. Ook werd het onbeschadigd bestand, met bepaalde GOP, vergeleken met een videosequentie van zeer goede kwaliteit (middelste kolom). Dit om de invloed van de GOP op de kwaliteit zelf, en dus zonder pakketverlies, ook in rekening te brengen. Ook werd de Frame Damage uitgezet voor verschillende GOP s. JND ifv GOP structuur bij 2500 kbit/s JND beschadid 2500 kbit/s tov origineel 2500 kbit/s JND Origineel 2500 kbit/s tov hoge kwaliteit video 5000kbit/s Frame Damage % JND score & framedamage(%) % 0 1/1 3/1 6/1 6/3 9/3 12/3 15/3 GOP structure Figuur 44: JND & Frame Damage in functie van GOP-structuur 74

75 In een 1/1 GOP-structuur zijn alle frames I-frames of dus intra-gecodeerd (dit heet ook wel Motion-JPEG). Maar alle frames intra-coderen resulteert in een bitsnelheid die hoger zal zijn dan de maximale waarde van 2,5Mbit/s. Daarom zal men de I-frames grover gaan coderen wat op zijn beurt resulteert in een slechtere kwaliteit van de I-frames. Dit is duidelijk te zien aan de hoge JND waarde voor deze GOP (middelste kolom). Voor alle andere GOP structuren zijn de JND scores vrij laag. De GOP-structuur heeft dus niet zoveel invloed op de kwaliteit zelf, behalve de 1/1 GOP. De Frame Damage varieert sterk in functie van de GOP-structuur. Zo ziet men bij een 1/1 structuur een zeer Frame Damage van 0.39 %. Dit komt doordat er geen propagatie is van de fout. Alle frames zijn immers onafhankelijk van elkaar gecodeerd en een fout in een bepaald I-frame heeft geen invloed op andere frames. Bij langere GOP-structuren zal de Frame Damage alsmaar toenemen, tot 9.1 % voor de 15/3 GOP, omdat de beschadiging alsmaar langer kan propageren. Uit de grafiek blijkt echter ook dat er zwakke correlatie bestaat tussen de Frame Damage en de JND score. De Frame Damage stijgt van 0.39 % bij de 1/1 GOP naar 9.1 % bij de 15/3 GOP, en de JND score stijgt van 6.37 naar 8.1 De Frame Damage wordt dus meer dan 20 keer groter terwijl de JND score slechts1.27 keer groter wordt. De verklaring hiervoor is als volgt: Als we eens kijken wat de gemiddelde score per beschadigd frame bedraagt voor verschillende GOP s in figuur 45 dan merken we dat deze weinig varieert en gemiddeld ongeveer 12 JND bedraagt. 75

76 Gemiddelde JND score beschadigde files JND score /1 3/1 6/1 6/3 9/3 12/3 15/3 GOP Figuur 45: Gemiddelde JND-score per beschadigd frame voor verschillende GOPstructuren Als we nu de JND TOTAAL score uitzetten in functie van de Frame Damage en elk beschadigd frame een score geven van 12 JND of de functie: JND TOTAAL ( framedamage) = 4 x= 0 framedamage aantalframes aantalframes 12, met aantal frames voor deze sequentie gelijk aan 3515, dan bekomen we de grafiek in figuur 46. Hier kunnen we aflezen dat de JND TOTAAL score voor 0.5% Frame Damage ongeveer 3 en voor 9% ongeveer 6.5 bedraagt. De Frame Damage wordt dus 20 keer groter terwijl de JND score slechts 2.17 keer groter wordt. Het resultaat hier is iets groter dan het resultaat uit figuur 44, dit komt doordat effectieve JND score niet exact 12 bedraagt, maar toch blijkt er een zwakke correlatie te zijn tussen Frame Damage en JND TOTAAL score ten gevolge van de wijze waarop de JND TOTAAL wordt berekend. 76

77 JND score ifv van framedamage (elk beschadigd frame 12 en 14 JND) 8 12 JND JND score framedamage (%) Figuur 46: JND-score in functie van de Frame Damage met elk beschadigd frame een score van 12 JND Indien we tenslotte de Frame Damage van de 6/1 en 6/3 GOP-structuur vergelijken dan blijkt dat de tweede hoger scoort. Dit komt doordat het aantal bytes/i-frame voor de 6/3 structuur hoger zal liggen dan voor de 6/1 structuur. In de 6/1 structuur zijn er immers 5 P-frames die, in bytes, heel wat groter zijn dan B-frames. In de 6/3 GOP zijn er vooral B-frames waardoor meer bytes ter beschikking komen voor de I-frames, waardoor deze groter worden en meer kans op beschadiging hebben. 77

78 Time Loss en Time No Loss 140 Time Loss Timme No Loss 120 'Time Loss' & 'Time No Loss' (frames) /1 3/1 6/1 6/3 9/3 9/3 12/3 15/3 GOP Figuur 47: Time Loss en Time No Loss in functie van de GOP-structuur In figuur 47 staan tenslotte de Time No Loss en de Time Loss (in frames) uitgezet. Hieruit blijkt dat de GOP-structuur eerder weinig invloed heeft op de Time No Loss. De afstand tussen de beschadigingen wordt immers bepaald door het pakket verlies en niet door de GOP. De GOP-structuur zal echter wel een invloed hebben op de Time Loss of de duur van de foutperiodes. Dit komt doordat de GOP-lengte de propagatielengte van de fout bepaalt. Met een korte GOP-lengte komt dus een korte Time Loss overeen Nabeschouwing Alle metingen zijn uitgevoerd met één testsequentie namelijk een deel de film Shrek. Dit was een deel met weinig beweging wat resulteerde in een bepaalde verhouding van de I-, P- en B-frames. Videosequenties met meer beweging in het beeld gaan in een ander I-, P- en B- frame verhouding resulteren. Indien er meer beweging is in het beeld zal het verschil tussen opeenvolgende frames groter worden. Dit geeft dat de grote van foutframes gaat toenemen. 78

79 Een foutframe is het verschil tussen het huidige frame en het bewegings-gecompenseerd vorig frame. De foutframes zijn dus de predictief geëncodeerde frames of de P- en B-frames. Deze zullen groter worden waardoor de grote van I-frames gaat afnemen. De som van de bits die de I-, B- en P-frames vertegenwoordigen in de bitstream moet immes kleiner zijn dan de volgens de encoderingsvoorwaarden maximale bitrate. Er zal dus minder kans zijn dat I-frames beschadigd gaan geraken, aangezien ze kleiner zijn. Dit zal resulteren in minder Frame Damage en dus betere kwaliteit, aangezien beschadiging van de I-frames een grote invloed heeft op de kwaliteit. Daar de onderzochte sequentie trage beeldvariaties heeft kan men stellen dat deze slechtere resultaten zal geven dan sequenties met veel beweging. Men dient dus deze resultaten te beschouwen als een soort worst case. Het kan natuurlijk wel gebeuren dat deze sequentie wel representatief is voor bepaalde genre of type film. Deze resultaten kunnen dus wel een goede weergave zijn van het effect van pakketverlies. 79

80 Hoofdstuk 6 Conclusies Een Video On Demand -service (VOD), waarbij een klant op elk gewenst moment en plaats een film van DVD-kwaliteit en gecodeerd volgens de universele MPEG-standaard kan streamen en bekijken, zou voor vele internetgebruikers een welgekomen applicatie zijn. Voor de internet-providers zou het een zeker commercieel voordeel bieden want het publiek staat als het ware te popelen voor dergelijke toepassingen.. Maar, het streamen van videobestanden over het internet, en een netwerk in het algemeen, brengt verlies met zich mee. Er kunnen allerlei fouten optreden die elk resulteren in hetzelfde resultaat: pakketverlies. Het videobestand raakt beschadigd en de kwaliteit van de film daalt. Nu blijkt uit metingen, verklaard in dit werk, dat bij transport van een MPEG-gecodeerde videofilm over netwerken met een pakketverlies van meer dan 1% de kwaliteit van de film zodanig achteruit gaat dat het niet langer aangenaam is om de film te bekijken. Wetende dat het gemiddelde pakketverlies van het hedendaagse internet in Europa varieert tussen de 3 en 5 %, kunnen we stellen dat dergelijke videoservice over het internet niet of moeilijk realiseerbaar zal zijn met de huidige technieken. Men kan echter wel trachten enkele eigenschappen van het netwerk en de MPEG-encodering te benutten om de invloed van pakketverlies te verkleinen. Men kan de GOP-structuur, instelbaar tijdens de encodering, van de videosequentie zodanig kiezen dat deze de kwaliteit beter bewaart. De GOP bepaalt immers de duur van de beschadiging. Een korte GOP komt overeen met een korte duur van de storingen in het beeld, en is dus wenselijk. Uit resultaten blijkt echter ook dat indien de GOP te klein werd gekozen, de resulterende, geëncodeerde film 80

81 een zeer slechte kwaliteit zal hebben. Uit de metingen leiden we af dat de 3/1 GOP-structuur de meest geschikte is voor transport over netwerken. De film die wordt aangeboden door de VOD-server dient niet van perfecte kwaliteit te zijn. De bitsneheid aan dewelke de film geëncodeerd is bepaalt immers in grote mate de kwaliteit na beschadiging. Bij hogere bitsnelheden zal het gemiddeld aantal pakketten per frame groter worden. Men zal dus meer kans hebben op beschadiging van een frame. Kiest men echter voor een te lage bitsnelheid dan zal de kwaliteit van de geëncodeerde film te slecht zijn. Men kan dus best voor de bitsnelheid een compromis vinden waarbij de kwaliteit van de film iets minder is maar waarbij de film toch minder beschadigd zal ontvangen worden. Men kan zorgen dat de pakketten die het videobestand transporteren zo groot mogelijk zijn en niet worden gefragmenteerd. Uit de resultaten blijkt immers dat bij gebruik van grotere pakketten het bestand beter beschermd wordt en de kwaliteit minder daalt. De invloed neemt zelfs nog toe voor bestanden van betere kwaliteit (en dus hogere bitsnelheid). Men kiest dus best de pakketlengte zo groot mogelijk indien de kans op verlies van een pakket constant blijft. De server die een videoservice aanbiedt kan ook kiezen om een meer intelligente pakketizatiemethode te implementeren, namelijk het pakketizatieschema volgens de RFC standaard. Dit pakketizatieschema is speciaal opgesteld voor transport van MPEGgeëncodeerde bestanden. Het beschermt de videobestanden beter aangezien informatie die samenhoort niet wordt gesplitst. Het UDP-protocol, standaard gebruikt voor real-time applicaties zoals streamen, houdt geen rekening met de inhoud van de bestanden. Cruciale informatie kan verdeeld zijn in twee pakketten waardoor bij verlies van één pakket het tweede zéker onbruikbaar wordt. Dit wordt verhinderd als men het RTP-pakketizatieschema volgt. In dat geval zullen na verlies van een pakket minder data beschadigd zijn. 81

82 Hoofdstuk 7 Uitbreiding Alle metingen zijn uitgevoerd op één videosequentie. Indien men deze resultaten wenst te vergelijken met resultaten volgend uit metingen met andere sequenties dient men er rekening mee te houden dat de beeldinhoud de resultaten beïnvloedt. De beeldinhoud bepaalt immers sterk de I/P/B verhouding. Videosequenties met veel beweging gaan grotere foutframes met zich meebrengen en dus grotere P- en B-frames en kleinere I-frames. Hierdoor kan de invloed van pakketverlies andere resultaten geven bij andere videosequenties. De I-frames zijn de belangrijkste frames want beschadiging van deze frames genereert immers een storing in het beeld die langer zal duren dan een storing gegenereert door beschadiging van een ander type frame. Alle frames zijn afhankelijk van deze I-frames. Men kan trachten van pakketten die dergelijke frames bevatten beter te beschermen. Zo kan men bijvoorbeeld, mits eventueel gebruik van een groter buffer, een geboost UDP-protocol te implementeren waarbij voor de I-pakketten (pakketten die I-frames bevatten), na foutief ontvangst, een éénmalige retransmissie kan worden aangevraagd. De kans dat een I-frame in de ontvangen sequentie beschadigd is wordt hierdoor gevoelig verkleind waardoor de kwaliteit van de film beter bewaard zal blijven. Maar, bij dergelijke constructies dient men wel rekening te houden met de bijkomende vertraging dat retransmissie met zich meebrengt. Bij applicaties waarbij men een film streamt van een server zal de bijkomende vertraging niet echt een probleem zijn. Bij live-streaming, bijvoorbeeld videoconferencing, waarbij er direct wordt geëncodeerd en verstuurd, kan die bijkomende vertraging echter wel de communicatie in de war sturen. Bij zulke toepassingen 82

83 echter zal men eerder kiezen voor een snelle transmissie met beschadigingen in de beelden dan voor minder beschadigde beelden maar met meer vertraging. Er werd bij alle metingen geen rekening gehouden met de slice lengte. Bij testsequenties bestond elk frame uit één slice. Meerdere slices per frame gaan de kwaliteit ten goede komen maar genereren ook meer slice-overhead (slice-headers) wat nadelig is voor de bitsnelheid. Er zou eventueel een ideale slice structuur bestaan voor transport over een netwerk waarbij de invloed van pakketverlies wordt geminimaliseerd. Er is ook nog een opmerking in verband met het JNDmetrix score systeem. JNDmetrix houdt geen rekening met de lengte van een bepaalde fout enkel met de aard. Zeer grote fouten gaan een zeer grote score krijgen waardoor de resulterende totaalscore ook groter zal worden. Maar indien een bepaalde beschadiging enkel in één frame optreedt zal dit de kijker bijna niet storen aangezien één frame slechts 0.04 seconden (bij 25 fps) duurt. Dit frame zou een lagere score moeten krijgen dan indien dezelfde fout zou optreden in een langere foutsequentie. Een beter scoresysteem zou dan bestaan uit een JND-analyse rekening houdende met de lengte van de foutperiodes. 83

84 Referentielijst [1] Mohammed Ghanbari. Telecommunications series 42: Video coding, an introduction to standard codecs. The Institution of Electrical Engineers, London, United Kingdom, [2] Joan L. Mitchell, William B. Pennebaker, Chad E. Fogg, Didier J. LeGall. Digital Multimedia Standard Series: MPEG video compression strandard. Kluwer Academic Publishers Group. Nederland, 2001 [3] ITU-T Recommendation H.261, video codec for audiovidual services at p 64 kbit/s, Geneva [4] Coding of moving pictures and associated audio for digital storage media at up to about 1.5Mbit/s, ISO/IEC :video, 1991 [5] Generic coding of moving pictures and associated audio information, ISO/IEC : Video, Draft International Standard, 1994 [6] Johan Bruneel, Toegepaste probabiliteit, UG [7] Info rond MPEG [8] Officiële MPEG website [9] JNDmetrix [10] VirtualDub website [11] Lijst met slides ivm videocodering [12] Informatie ivm H.261 standaard [13] over het avi-formaat 84

85 Bijlage A Gebruikershandleiding VisualDropSim Inhoudstafel A. Inleiding B. Gebruik C. Basisfunctionaliteit: beschadigen van bestanden D. Uitgebreidere functionaliteit: generatie script- en batch-bestanden E. Output A. Inleiding: VisualDropSim is een netwerksimulatieprogramma voor MPEG-1 gecodeerde videostreams. Dit zijn bestanden met extensie: *.m1v. VisualDropSim kan videostreams beschadigen met verschillende instelbare parameters en kan sequentieel één bestand met een aantal verschillende parameters simuleren. In de eerste paragraaf worden alle knoppen van de GUI verklaard. In een tweede paragraaf wordt het basis gebruik met enkele voorbeelden verduidelijkt en in de derde paragraaf wordt er meer uitleg gegeven omtrent script en batch generatie voor het autonoom opstarten van de kwaliteitsmetingen na beschadiging. In de laatste paragraaf wordt output van het programma besproken. B. Gebruik 85

86 A B I J C H D E F G A: In de Input file name -edit box komt het bestand dat werd geselecteerd na het openen van het File Open -dialoog venster met de Browse-knop. B: De knoppen Set packetlength, Set uniform packet loss en Set bursty packet loss openen een dialoogvenster waarin men de parameters kan invullen. Set packetlength opent onderstaand dialoogvenster. Telkens men een pakketlengte invult en op OK klikt of op Enter drukt wordt deze pakketlengte toegevoegd aan een lijst. Men kan zoveel pakketlengtes toevoegen als men wil. Elke pakketlengte op de lijst zal dan worden toegepast bij de simulaties 86

87 De Set unifrom packet loss opent een gelijkaardig venster waar men opnieuw zoveel waarden kan ingeven als men wenst. Alle ingegeven pakketverliezen worden dan gesimuleerd met alle ingegeven pakketlengtes. De Set bursty packet loss opent het onderstaande venster. Men kan hierin ofwel de α en β waarden ingeven ofwel het gemiddelde aantal periodes N α en N β waaruit de α en β waarden worden afgeleid. Men kan ook hier zoveel α,β koppels ingeven als men wenst te onderzoeken. Elk ingevoegd koppel wordt onderzocht met de ingegeven pakketlengtes. Met de Reset knop kan men de lijst ledigen. C: Men kan het totaal aantal frames ofwel zelf ingeven door Enter frame count aan te vinken en de waarde daaronder in te vullen ofwel laten berekenen door het programma zelf wat veel tijd in beslag kan nemen. Indien men de waarde zelf wenst in te vullen dient men er zeker van te zijn dat deze correct is, anders kan het programma blokkeren. D: Door deze functie aan te vinken zal het programma een log bestand genereren dat informatie geeft omtrent het invoerbestand en omtrent de beschadiging. E: De waarde hier ingevuld bepaalt het aantal keer dat de simulatie dient herhaald te worden. F: Hier staat er informatie over de status van het programma en de geschatte tijd nodig voor het uitvoeren van de rest van de simulaties. G: Indien de Skip first bytes staat aangevinkt worden de eerste bytes tot aan de eerste GOP-header niet beschadigd en onvoorwaardelijk naar het uitvoer bestand geschreven. Dit kan bijvoorbeeld nodig zijn opdat het bestand door een afspeelapparaten nog zou worden herkend als MPEG-bestand. H: De knop Batch options opent een nieuw venster (zie onderstaande figuur). Hierin kan men aangeven of er een batch bestand moet aangemaakt worden, en, of dit direct na de simulaties moet worden uitgevoerd. Indien er een batch bestand moet worden aangemaakt moet men de locatie van VirtualDub en JNDmetrix opstartbestanden opgeven. Men kan ook in een 3 de invulvak Path één zin zetten die aan het begin van het batchbestand zal staan. Dit wordt dan bij de uitvoering van de batch eerst gedaan. 87

88 Men kan ook het scantype van het invoerbestand opgeven. Dit kan progressive, interlaced PAL of interlaced NTSC zijn. Deze informatie wordt via een scriptbestand (zie D) meegegeven bij het opstarten van JNDmetrix. I: Hier kan men de pakketizatieschema s kiezen. Men heeft keuze uit het UDP, het UDP no headers en het RTP pakketizatieschema. Het UDP pakketizatieschema zal het bestand pakketizeren volgens vaste pakketlengtes (die je kan ingeven in Set packetlength ). Het UDP no headers pakketizatieschema pakketizeert ook volgens vaste pakketlengtes maar enkel in de slicelaag. De Sequence-, GOP- en Picture-header wordt niet gepakketizeerd en onvoorwaardelijk naar het uitvoerbestand geschreven. Het RTP pakketizatieschema pakketizeert volgens de RFC 2250 standaard. H: Indien men als pakketizatieschema het UDP no headers schema heeft gekozen dan kan men opgeven of bepaalde types frames mogen gepakketizeert worden. De framestypes die niet zijn aangevinkt worden onvoorwaardelijk naar het uitvoerbestand geschreven en zijn dus niet beschadigd. C. Basisfunctionaliteit: beschadigen van bestanden Aangezien VisualDropSim één invoerbestand met verschillende parameters kan simuleren resulteert dit in een aantal beschadigde uitvoerbestanden. Deze krijgen elk een specifieke naam en locatie. Hiervoor creëert VisualDropSim een aantal submappen in de map van het invoerbestand. Naamgeving: 88

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

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

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

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

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

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

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

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

Nadere informatie

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

DEC SDR DSP project 2017 (2)

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

Nadere informatie

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

Modem en Codec. Telematica. Amplitude-modulatie. Frequentie-modulatie. Soorten modems. Fase-modulatie

Modem en Codec. Telematica. Amplitude-modulatie. Frequentie-modulatie. Soorten modems. Fase-modulatie Modem en Codec Telematica Data Transmissie (Fysieke laag) Hoofdstuk 6 t/m 8 Een modem gebruikt analoge signalen om digitale signalen te versturen Een codec gebruikt digitale signalen om analoge signalen

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

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

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

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

21 oktober 2015. Geheugenkaartjes

21 oktober 2015. Geheugenkaartjes 21 oktober 2015 Geheugenkaartjes Inhoud Inleiding Geheugenkaartjes bij opname Geheugenkaartjes bij montage Geheugenkaartjes voor opslag en transport 2 Inleiding Video-opslag is technologie die nog steeds

Nadere informatie

Geheugenkaartjes. 19 december 2014

Geheugenkaartjes. 19 december 2014 Geheugenkaartjes 19 december 2014 Inhoud Inleiding Geheugenkaartjes bij opname Geheugenkaartjes bij montage Geheugenkaartjes voor opslag en transport 2 Inleiding Video-opslag is technologie die nog steeds

Nadere informatie

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

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

Nadere informatie

PROJECT 1: Kinematics of a four-bar mechanism

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

Nadere informatie

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

3 Graphics and Image Data Representation

3 Graphics and Image Data Representation 3 Graphics and Image Data Representation 1. Wat is bit-planecodering? Telkens meer informatie toevoegen door middel van bit-planes. Een bitplane is een voorstelling van een afbeelding op een bepaald bitniveau.

Nadere informatie

Bewegend beeld en geluid: Compressie en Distributie

Bewegend beeld en geluid: Compressie en Distributie Bewegend beeld en geluid: en Distributie erik.luyten@avnet.kuleuven.be AVNet K.U.Leuven Bewegend beeld 2 1 Erik Luyten Ruimtelijke resolutie 7 x 10 = 70 28 x 40 = 1120 112 x 160 = 17920 448 x 640 = 309120

Nadere informatie

Freezed frames herstellen met AVIQuick en VirtualDub

Freezed frames herstellen met AVIQuick en VirtualDub Freezed frames herstellen met AVIQuick en VirtualDub Voorbereidingen: -Maak een kopietje of een textje van de gegevens die Gspot geeft over de Avi. -Check op freezed frames met VirtualDub-MP3-Freeze -Rip

Nadere informatie

HOOFDSTUK 5: Digitale audio

HOOFDSTUK 5: Digitale audio HOOFDSTUK 5: Digitale audio 1. Geluid geluidsgolf wat drukwisselingen in bepaald medium (geen luchtledige) longitudinaal (in richting van energie) eigenschappen golflengte (en dus frequentie) bepaald toonhoogte

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

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

communicatie is onderhevig aan fouten

communicatie is onderhevig aan fouten 1.1 Een communicatiemodel Algemeen communicatiemodel Model voor datacommunicatie Verschil datacommunicatie en telecommunicatie Communicatie schematisch communicatie is onderhevig aan fouten Datacommunicatie

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

DEC DSP SDR 5 Dicrete Fourier Transform

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

Nadere informatie

Studentenhandleiding: Technische specificaties voor en de inlevering van mediabestanden voor visie en archivering

Studentenhandleiding: Technische specificaties voor en de inlevering van mediabestanden voor visie en archivering Studentenhandleiding: Technische specificaties voor en de inlevering van mediabestanden voor visie en archivering Document Versie Datum Bijdrage Beschrijving 0.2 16/01/2014 Mustafa Karakus Informatie over

Nadere informatie

Les D-04 Foutdetectie en correctie

Les D-04 Foutdetectie en correctie Les D-04 Foutdetectie en correctie In deze les staan we stil bij het ontdekken (detectie) van fouten bij datacommunicatie en bij het herstellen (correctie) van fouten bij datacommunicatie. We bespreken

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

9. Lineaire Regressie en Correlatie

9. Lineaire Regressie en Correlatie 9. Lineaire Regressie en Correlatie Lineaire verbanden In dit hoofdstuk worden methoden gepresenteerd waarmee je kwantitatieve respons variabelen (afhankelijk) en verklarende variabelen (onafhankelijk)

Nadere informatie

DATA COMPRESSIE DATASTRUCTUREN

DATA COMPRESSIE DATASTRUCTUREN 1 DATA COMPRESSIE DATASTRUCTUREN Dr. D.P. Huijsmans 28 november 2012 Universiteit Leiden LIACS DATA COMPRESSIE WAAROM? Data opslaan kost ruimte (bits/bytes/words) Hoe minder ruimte hoe efficienter geheugen

Nadere informatie

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

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

Nadere informatie

11. Multipele Regressie en Correlatie

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

Nadere informatie

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

DVD s maken met Adobe Premiere Encore

DVD s maken met Adobe Premiere Encore DVD s maken met Adobe Premiere Encore In dit hoofdstukje bekijken we hoe je snel een DVD maakt van een film die is gemonteerd in Adobe Premiere Pro. Voor het aanmaken van het menu gebruiken we even Adobe

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

Achtergrondinformatie QR-code op aanvoerbrief 2.xx.0

Achtergrondinformatie QR-code op aanvoerbrief 2.xx.0 Achtergrondinformatie QR-code op aanvoerbrief 2.xx.0 Door: Bert Velthuijs Datum 1e versie: 20 september 2012 Datum laatste wijziging Huidige Versie: 2.xx.0 Wijzigingen Inhoudsopgave 1. Inleiding...3 2.

Nadere informatie

DSLSTL. Handleiding Copyright 2008. Handleiding DSLSTL Pagina 1 of 11

DSLSTL. Handleiding Copyright 2008. Handleiding DSLSTL Pagina 1 of 11 DSLSTL Handleiding Copyright 2008 Handleiding DSLSTL Pagina 1 of 11 1 Versie beheer...3 2 Algemene omschrijving DSLSTL...4 3 Gebruik achter een router en/of firewall...5 4 Installeren van de software...6

Nadere informatie

Het Versacom systeem is gedefinieerd in DIN 43861, deel 301 als "transfer protocol A".

Het Versacom systeem is gedefinieerd in DIN 43861, deel 301 als transfer protocol A. Versacom Het Versacom protocol (Versatile Communication) wordt gebruikt voor het op afstand programmeren van intelligente ontvangers. Dit protocol verstuurt schakelprogramma's, agenda- en vakantie periodes

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

Videogroep HCC-Leiden. Digitale Videobewerking. Een fascinerende hobby

Videogroep HCC-Leiden. Digitale Videobewerking. Een fascinerende hobby Videogroep HCC-Leiden Digitale Videobewerking Een fascinerende hobby Presentatie: Jan van Staveren Wat heb je er voor nodig? PC of Laptop Video camera Videobewerkings programma CD en/of DVD brander En

Nadere informatie

Camera Link. Samenvatting van de Camera Link standard Voor het aansluiten van Digitale cameras op Frame Grabbers. Opmerkingen

Camera Link. Samenvatting van de Camera Link standard Voor het aansluiten van Digitale cameras op Frame Grabbers. Opmerkingen Camera Link Samenvatting van de Camera Link standard Voor het aansluiten van Digitale cameras op Frame Grabbers Opmerkingen Dit document is slechts een samenvatting en heeft geen enkele officiële waarde.

Nadere informatie

HOOFDSTUK 4: Video. 1. Videosignalen

HOOFDSTUK 4: Video. 1. Videosignalen HOOFDSTUK 4: Video 1. Videosignalen component video [analoog] principe 3 analoge signalen fysiek gescheiden splitsing in RGB, YCbCr (digitaal) of YPbPr (analoog), geen crosstalk (interferentie) => beste

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

WORKSHOP DIGITALE FORMATEN RENÉ DUURSMA

WORKSHOP DIGITALE FORMATEN RENÉ DUURSMA WORKSHOP DIGITALE FORMATEN RENÉ DUURSMA INTRAFRAME ENCODING XAVC (MXF.OP1A) VARIABLE BIT RATE BPP DEINTERLACING MPEG TRANSPORT PACKETS Digital video is an electronic representation of moving visual images

Nadere informatie

Digitale systemen. Hoofdstuk 6. 6.1 De digitale regelaar

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

Nadere informatie

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

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

Nadere informatie

1 Rekenen in eindige precisie

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

Nadere informatie

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

Aankoopgids DVD. Koop slim en laat u informeren door Unigro! Kijk regelmatig op onze website voor updates en nieuwe aankoopgidsen.

Aankoopgids DVD. Koop slim en laat u informeren door Unigro! Kijk regelmatig op onze website voor updates en nieuwe aankoopgidsen. Aankoopgids DVD Koop slim en laat u informeren door Unigro! Kijk regelmatig op onze website voor updates en nieuwe aankoopgidsen. Hoe kiest u HET juiste DVD-toestel? De dvd heeft de plaats van video ingenomen

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

Tentamen 19 december 2003 Multimedia Informatie en Informatieverwerking

Tentamen 19 december 2003 Multimedia Informatie en Informatieverwerking Tentamen 19 december 003 Multimedia Informatie en Informatieverwerking Een tentamen is géén verslag: de vraag hoeft niet herhaald te worden. Graag korte antwoorden. Lange antwoorden waarin je je kennis

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

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

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

1. Reductie van error variantie en dus verhogen van power op F-test

1. Reductie van error variantie en dus verhogen van power op F-test Werkboek 2013-2014 ANCOVA Covariantie analyse bestaat uit regressieanalyse en variantieanalyse. Er wordt een afhankelijke variabele (intervalniveau) voorspeld uit meerdere onafhankelijke variabelen. De

Nadere informatie

Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden.

Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Uitleg Welkom bij de Beverwedstrijd 2006 Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Je krijgt 5 vragen van niveau A, 5 vragen van niveau B en 5 vragen van niveau C. Wij denken

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

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

Zwart-wit en grijstinten

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

Nadere informatie

Netwerk Interfacing Data Logging.

Netwerk Interfacing Data Logging. Handleiding Netwerk Interfacing Data Logging. EduTechSoft.nl 2009-2010 H.O.Boorsma. Pagina - 2 - Netwerk Interfacing Data Logging Pagina - 3 - Inhoud Inleiding.... 4 Beschrijving van het programma....

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE

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

Nadere informatie

EXAMEN INFORMATIETHEORIE I (5JJ40 / 5K020) 25 maart 2004, 9u00 12u00-1 -

EXAMEN INFORMATIETHEORIE I (5JJ40 / 5K020) 25 maart 2004, 9u00 12u00-1 - EXAMEN INFORMATIETHEORIE I (5JJ40 / 5K020) 25 maart 2004, 9u00 12u00-1 - Zet de antwoorden in de daarvoor bestemde vakjes en lever alleen deze bladen in! LET OP: Dit werk bevat zowel de opgaven voor het

Nadere informatie

SPSS Introductiecursus. Sanne Hoeks Mattie Lenzen

SPSS Introductiecursus. Sanne Hoeks Mattie Lenzen SPSS Introductiecursus Sanne Hoeks Mattie Lenzen Statistiek, waarom? Doel van het onderzoek om nieuwe feiten van de werkelijkheid vast te stellen door middel van systematisch onderzoek en empirische verzamelen

Nadere informatie

Gebruikershandleiding

Gebruikershandleiding Gebruikershandleiding Installeren van het programma Het programma heeft geen verdere installatie nodig dan het downloaden van de bestanden. Na het downloaden kunt u op GUI dubbelklikken om het programma

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

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE

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

Nadere informatie

Continuous Learning in Computer Vision S.L. Pintea

Continuous Learning in Computer Vision S.L. Pintea Continuous Learning in Computer Vision S.L. Pintea Continuous Learning in Computer Vision Natura non facit saltus. Gottfried Leibniz Silvia-Laura Pintea Intelligent Sensory Information Systems University

Nadere informatie

Hoofdstuk 3 - Transformaties

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

Nadere informatie

Een intelligent DMX netwerk

Een intelligent DMX netwerk WORKSHOP STEPP Een intelligent DMX netwerk WORKSHOP STEPP Wat is DMX? Een intelligent DMX netwerk Demo opstelling Probleem oplossing Wat is DMX? Hoe is het DMX signaal ontstaan DMX in de praktijk Hoe

Nadere informatie

Oefeningenexamen Informatica: juni 2015

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

Nadere informatie

Methode voor een vlotte montage van UHD beeldmateriaal op een normale 2K montage PC.

Methode voor een vlotte montage van UHD beeldmateriaal op een normale 2K montage PC. Methode voor een vlotte montage van UHD beeldmateriaal op een normale 2K montage PC. Het probleem bij UHD montage Het probleem bij het editeren van UHD beelden schuilt in het feit dat die beelden opgenomen

Nadere informatie

LES 3 Analoog naar digitaal conversie

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

Nadere informatie

Noordhoff Uitgevers bv

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

Nadere informatie

Rapport. Real-time datastromen. Versie 1.0. Datum 22 December 2010

Rapport. Real-time datastromen. Versie 1.0. Datum 22 December 2010 Rapport Real-time datastromen Versie 1.0 Datum 22 December 2010 Status Final Colofon IVENT A&A CDC Madame Curielaan 4-6 Postbus 20703 2289 CA Rijswijk Contactpersoon Patrick Brooijmans Teamleider Functionele

Nadere informatie

Studentenhandleiding: Technische specificaties voor en de inlevering van mediabestanden voor visie en archivering

Studentenhandleiding: Technische specificaties voor en de inlevering van mediabestanden voor visie en archivering Studentenhandleiding: Technische specificaties voor en de inlevering van mediabestanden voor visie en archivering Voorbereiden van de media De media moet volgens de specificaties beschreven in Bijlage

Nadere informatie

Hoofdstuk 7: METING VAN DE FREQUENTIE- NAUWKEURIGHEID

Hoofdstuk 7: METING VAN DE FREQUENTIE- NAUWKEURIGHEID Hoofdstuk 7: METING VAN DE FREQUENTIE- NAUWKEURIGHEID 7.1. Inleiding In dit hoofdstuk zullen we enkele methoden bespreken voor het bepalen van de nauwkeurigheid van de door ons te distribueren frequentiestandaard.

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

EXPORTEREN UIT FINAL CUT

EXPORTEREN UIT FINAL CUT EXPORTEREN UIT FINAL CUT vanuit FCE/FCP naar DVD of YouTube (Gebaseerd op Izzy Video en Lynda.com) WORKFLOW - FINAL CUT EXPRESS Maak altijd een full-size ongecomprimeerde versie van de film aan (QuickTime

Nadere informatie

Klasse B output buffer voor een Flat Panel Display Kolom aansturing

Klasse B output buffer voor een Flat Panel Display Kolom aansturing Gevalstudie 1 Klasse B output buffer voor een Flat Panel Display Kolom aansturing IEEE Journal of Solid-state circuits, Vol 34, No 1, Januari 1999, pp 116-119 Jan Genoe KHLim Flat Panel display kolom driver

Nadere informatie

COMMUNICATIE- EN COMPUTERVAARDIGHEDEN IN DE CHEMIE

COMMUNICATIE- EN COMPUTERVAARDIGHEDEN IN DE CHEMIE COMMUNICATIE- EN COMPUTERVAARDIGHEDEN IN DE CHEMIE 4 e les Prof. Dr. Frank De Proft 22 oktober 2004 Derde les : Hoofdstuk 1 : Basisbegrippen Inleiding Enkele basisbegrippen 1 Vierde les : Binaire getallen

Nadere informatie

De Blu-ray Disc. Uitwerkingen opgaven. Een vakoverstijgende opdracht voor 5 havo en 5/6 vwo. Jean Schleipen Philips Research, Eindhoven

De Blu-ray Disc. Uitwerkingen opgaven. Een vakoverstijgende opdracht voor 5 havo en 5/6 vwo. Jean Schleipen Philips Research, Eindhoven Een vakoverstijgende opdracht voor 5 havo en 5/6 vwo (natuurkunde, wiskunde, elektrotechniek, meet- en regeltechniek) Jean Schleipen Philips Research, Eindhoven Opgave 2 = x 2 3 + x 2 2 + x 2 + x 2 = 4

Nadere informatie

Het gebruik van SPSS voor statistische analyses. Een beknopte handleiding.

Het gebruik van SPSS voor statistische analyses. Een beknopte handleiding. Het gebruik van SPSS voor statistische analyses. Een beknopte handleiding. SPSS is een alom gebruikt, gebruiksvriendelijk statistisch programma dat vele analysemogelijkheden kent. Voor HBO en universitaire

Nadere informatie

Achter het correctievoorschrift is een aanvulling op het correctievoorschrift opgenomen.

Achter het correctievoorschrift is een aanvulling op het correctievoorschrift opgenomen. Examen HAV 2018 tijdvak 1 donderdag 24 mei 13.30-16.30 uur wiskunde B Bij dit examen hoort een uitwerkbijlage. Achter het correctievoorschrift is een aanvulling op het correctievoorschrift opgenomen. Dit

Nadere informatie

Muziek. Muziek. Analoog rekenen. Hoofdstuk 1: Van analoog naar digitaal. Analoog. Digitaal. Analoog. Gebruik makend van fysische grootheden Cf Babbage

Muziek. Muziek. Analoog rekenen. Hoofdstuk 1: Van analoog naar digitaal. Analoog. Digitaal. Analoog. Gebruik makend van fysische grootheden Cf Babbage Analoog rekenen Gebruik makend van fysische grootheden Cf Babbage Analoge electronica http://www.chem.uoa.gr/applets/appletopamps/appl_opamps2.html Hoofdstuk : Van analoog naar digitaal De rekenlat of

Nadere informatie

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

Studie en implementatie van de bewegingscompensatie in een H.264/AVC-decoder 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

Nadere informatie

Android apps met App Inventor 2 antwoorden

Android apps met App Inventor 2 antwoorden 2014 Android apps met App Inventor 2 antwoorden F. Vonk versie 1 11-11-2014 inhoudsopgave Mollen Meppen... - 2 - Schrandere Scholier... - 15 - Meteoor... - 21 - Dit werk is gelicenseerd onder een Creative

Nadere informatie

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

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

Nadere informatie

De statespace van Small World Networks

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

Nadere informatie

IJkingstoets burgerlijk ingenieur-architect september 2018: feedback deel wiskunde

IJkingstoets burgerlijk ingenieur-architect september 2018: feedback deel wiskunde IJkingstoets burgerlijk ingenieur-architect september 8: feedback deel wiskunde Positionering ten opzichte van andere deelnemers In totaal namen 5 studenten deel aan de ijkingstoets burgerlijk ingenieur-architect

Nadere informatie

IJkingstoets burgerlijk ingenieur-architect september 2018: feedback deel wiskunde

IJkingstoets burgerlijk ingenieur-architect september 2018: feedback deel wiskunde IJkingstoets burgerlijk ingenieur-architect september 8: feedback deel wiskunde Positionering ten opzichte van andere deelnemers In totaal namen 5 studenten deel aan de ijkingstoets burgerlijk ingenieur-architect

Nadere informatie

Gebruikershandleiding. Draadloze USB video-ontvanger. Model BRD10

Gebruikershandleiding. Draadloze USB video-ontvanger. Model BRD10 Gebruikershandleiding Draadloze USB video-ontvanger Model BRD10 Inleiding Gefeliciteerd met uw aankoop van de Extech BRD10 Draadloze USB video-ontvanger voor gebruik met het assortiment van Extech Boroscopen.

Nadere informatie

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen Jan Genoe KHLim Situering RAM-geheugens Geheugens Halfgeleider Geheugens Serieel toegankelijk geheugen Willekeurig toegankelijk geheugen Read Only Memory ROM Random Access Memory RAM Statische RAM SRAM

Nadere informatie

Informatica: C# WPO 12

Informatica: C# WPO 12 Informatica: C# WPO 12 1. Inhoud Datacontainers, bestanden uitlezen, bestanden schrijven en data toevoegen aan en bestand, csv-bestanden 2. Oefeningen Demo 1: Point2D Demo 2: Notepad Demo 3: Read CSV-file

Nadere informatie

Ijkingstoets industrieel ingenieur aangeboden door UGent en VUB op 15 september 2014: algemene feedback

Ijkingstoets industrieel ingenieur aangeboden door UGent en VUB op 15 september 2014: algemene feedback IJkingstoets 5 september 04 - reeks - p. /0 Ijkingstoets industrieel ingenieur aangeboden door UGent en VUB op 5 september 04: algemene feedback In totaal namen 5 studenten deel aan deze ijkingstoets industrieel

Nadere informatie

wiskunde B havo 2018-I

wiskunde B havo 2018-I Macht van 2 De functie f is gegeven door 0,3x 2 f( x) 4 2. Op de grafiek van f ligt een punt R. De y-coördinaat van R is 2. 3p 1 Bereken exact de x-coördinaat van R. De grafiek van f snijdt de x-as in

Nadere informatie