Alles wat met compressie, decoderen en cryptografie te maken heeft komt hier te staan!

Portable Games 2. Geluid - Welk effect heeft compressie op de kwaliteit?

Door ObAt op donderdag 12 mei 2011 18:46 - Reacties (12)
Categorie: Geluid, Views: 2.596

Inleiding
Mijn laatste blog bracht een heel aantal vragen naar boven, daarom heb ik besloten dat ik deze blog maak waarin ik wat dieper in ga op de zaken die ik eerder heb besproken. Aan te raden is dan ook om eerst mijn laatste blog te lezen!

We gaan het onder andere hebben over de kwaliteitsverlies, en als deze er Łberhaupt is. Daarna gaan we kijken naar de verschillen tussen Wave en Ogg Vorbis, en wat voor voor- en nadelen aan Ogg Vorbis zitten. Maar om te beginnen wil ik nog eens duidelijk uitleggen wat ik met mijn vorige blog bedoelde.

Games ombouwen?
We gebruiken Left4Dead 2 maar weer is als voorbeeld. Stel je hebt mooi alle Wave's gedecodeerd tot Ogg Vorbis bestanden, is het dan mogelijk om de game nog te draaien? Het antwoord is makkelijk gezegd: Nee, dat gaat helaas niet. De dingen die dat regelen zitten vaak zo diep in de game dat je het niet kunt wijzigen. (We komen hier later nog op terug, maar laat het maar nu voor hoe het is)

De vraag is dan, wat heb je dan aan de compressie? Nou het antwoord is simpel, je kunt iets inpakken zodat het tijdelijk een stuk kleiner is. Dit is erg handig bij het 'vervoer' van games, wat meestal via DVD'tjes of via Steam gaat. Het is in economisch opzicht erg handig om maar 1 DVD'tje te hoeven gebruiken i.p.v. 3! De kosten van een DVD'tje zijn dan wel zeer laag tegenwoordig (nog geen 20 cent tegenwoordig) maar als je 10 miljoen games verkoopt wil ik best wel 10 miljoen keer die 20 cent houden (2 miljoen euro). Het zelfde geldt bij games die eerst gedownload moeten worden zoals bij Steam, bandbreedte kost ook vrijwel niets meer tegenwoordig maar op grote schaal (tienduizenden terabytes = ~10 miljoen verkochte games) is het ook zeker de moeite waard om is na te kijken!

Kwaliteitsverlies, of niet!
Zelf beweer ik dat de kwaliteit er niet op achteruit gaat bij het encoderen van Wave bestanden naar Ogg Vorbis, als dit klopt daar gaan we (en ik zelf ook) nu achter komen. Voor deze test heb ik een liedje (Rihanna - Don't Stop The Music) gedownload in 1:1 formaat, oftewel als Wave bestand. Ik heb het liedje gedecodeerd tot een Ogg Vorbis bestand en daarna heb ik deze weer terug gedecodeerd tot een Wave'je. We zullen de verschillen is bekijken.

Als eerste heb ik verschillende mensen het verschil proberen te laten vinden door er na te luisteren. De uitkomst hiervan is, is dat de helft dacht dat het Ogg Vorbis bestandje het origineel was en de andere helft dacht dat de Wave het origineel was (verschil is dus bijna niet te horen, het was dus gokwerk).

Nu is een beetje de technische kant van het verhaal bekijken. Ik heb dezelfde bestanden gebruikt die ik in het vorige voorbeeld heb gebruikt. Deze bestanden heb ik door middel van Adobe Soundbooth eenvoudig kunnen analyseren. Het resultaat volgt in de volgende twee afbeeldingen.

http://imageshack.us/m/807/9776/ogg.jpg
Het OGG Vorbis bestand

http://imageshack.us/m/842/2278/wavezb.jpg
Het origineel Wave bestand

Zoals je kunt zien, zie je dat sommige golfjes (strepen) minder hoog zijn bij het OGG bestand dan bij het origineel. Dit geeft aan dat er wel degelijk kwaliteitsverlies is! Maar het totaal verlies is zeer laag en bijna niet te horen. Om nog maar een vergelijking te maken heb ik nu ook het MP3 bestand (10.1mb @ 320kbps) geanalyseerd.

[url=http://imageshack.us/m/52/4779/mp3y.jpghttp://imageshack.us/m/52/4779/mp3y.jpg[/url]
Het MP3 bestand

De verschillen zijn gigantisch! Er is duidelijk een kwaliteitsverlies te zien, en dit is wel hoorbaar voor een geoefend oor. Als je de verschillen tussen OGG en WAV vergelijkt met MP3 en WAV zie je dat OGG Vorbis veel beter uit de test komt! Als je de verschillen niet ziet is het aangeraden om de afbeeldingen op te slaan en dan na elkaar te bekijken.

Ook nog leuk om te weten, bekijk het verschil van grootte is tussen de verschillende bestanden.

Wave: 44,9 MB (47.116.436 bytes)
MPEG-1 Layer 3 (MP3): 10,1 MB (10.684.460 bytes)
Ogg Vorbis: 3,67 MB (3.856.627 bytes)

Conclusie
Kort samengevat, het decoderen naar Ogg Vorbis geeft een compressieverhouding van 91.8% (!!!). Het zal een understatement zijn om te zeggen dat dit gigantisch veel is! MP3 geef opzicht ook een heel nette compressie, namelijk 77.5%. Het enige nadeel is, is dat het geluid er hoorbaar op achteruit gaat, wat niet het geval is bij Ogg Vorbis. Xiph.Org Foundation (maker van Ogg Vorbis) heeft in deze blog dus beide wedstrijden gewonnen, beste compressie en beste kwaliteit.

Het enige nadeel wat Ogg Vorbis heeft is dat Wave en MP3 in tegenstelling tot Ogg Vorbis veel uitgebreider wordt ondersteund door vrijwel alle Hard- en Softwaremakers. Wel moet er bij worden gezegd dat vrijwel alle nieuwe apparaten (en programma's) Ogg Vorbis wel al ondersteunen, een aantal voorbeelden zijn: Samsung, SanDisk, Rio, Neuros Technology, Cowon, Iriver, Philips en Unreal Tournament 2004. De toekomst zal leren als dit lijstje nog een stuk groter wordt, of als programmeurs geen behoefte hebben aan wat nieuws :)

Portable Games 1. Geluid - Hoe een Game 90% kleiner te maken.

Door ObAt op maandag 25 april 2011 16:35 - Reacties (21)
Categorie: Geluid, Views: 4.204

Inleiding
Portable Games zijn erg handig, het zijn games die op een andere manier zijn ingepakt zodat je niet meer een oneindig lange installatie uit hoeft te voeren. Ook zijn sommige Direct Play RIPs vele malen kleiner dan het origineel. In deze post wil ik is wat algemene info geven over games.

Direct Play RIP's/Portable Games zijn vaak illegaal omdat deze een crack bevatten, in deze blog gaat het niet om het downloaden of verkrijgen van deze illegale bestanden maar om de technische inhoud van z'n RIP. Mocht BREIN deze post toch niet leuk vinden dan hebben ze pech kunnen ze zich bij mij melden :)

Opbouw van een spel
Vrijwel alle spellen verschillen gigantisch van elkaar, dit heeft te maken met de Engine van het spel (de manier hoe het spel in elkaar is gezet). Sommige spellen (Age of Mythology, Left4Dead2 ect) passen geen (extra) compressie toe op het spel, alle geluiden vind je gewoon terug als een .wavje ,ook alle models e.d. zijn allemaal los te vinden. Het voordeel hiervan is dat je in principe de hele game kunt veranderen en heel makkelijk mods en extra maps kan maken. Het nadeel hiervan is dat er meer dan 40.000 bestanden nodig zijn om Left4Dead2 werkend te krijgen. Ook is de game nogal groot (11.8GB). De vraag is, moet dat zo groot? Je hebt nu 3 DVD's nodig om het spel te installeren (of 1 dure DVD9 en een DVD5), dit is te gek voor woorden.

Nut van Compressie
Stel Left4Dead2 wordt 'maar' 10 Miljoen keer verkocht. Als we een spel hebben van 11.8GB en we verkopen het alleen via Steam dan is er dus 11.800.000GB=11.800TB! bandbreedte nodig om alleen al om het spel te kunnen downloaden! Ikzelf heb de game tot 2.45GB kunnen comprimeren, dat is een afname van 80%, en 80% is veel op 11.800TB. 9.440TB kon bespaard worden als de ontwikkelaars verder keken dan hun neus lang is. Ook voor spellen die steam nooit zullen zien is het handig. Zoals hierboven gezegd is een afname van 3 DVD's naar 1 DVD'tje ook de moeite waard om na te kijken.

Het enige probleem was dat lang niet alle computers zo krachtig waren om deze zware berekeningen te doen. Compressie is een vrij tijdrovend en zwaar proces als je het niet goed doet. Als je echt goed wilt 'inpakken' heb je toch wel 2GB RAM nodig. Dit klinkt allemaal zeer ernstig en heftig, maar de minimale systeemeisen van een nieuw spel zijn vaker gelijk of nog hoger! Dit probleem is dus ook opgelost!

Kwaliteit vs Grootte
Het gebruik van WAV bestanden is ongelooflijke overkill en niet nodig, deze manier van het opslaan van geluid heeft veel te veel schijfruimte nodig. MP3 bestanden worden vrijwel nooit toegepast in games omdat MP3 toch kwalitatief een stuk minder is en MP3 kent een heel aantal patenten. Zou het niet ideaal zijn als er nou een compressietechniek zou zijn die patentloos is en een veel betere compressie heeft dan Wav'jes? Dat zou inderdaad erg handig zijn, gelukkig bestaat zoiets ook nog! Ogg Vorbis is gemaakt door de Xiph.Org Foundation en is vrij van patenten! Ook is de compressie vele malen beter dan Wave.

Maar

Praktijk testje
Om te testen als wat ik allemaal uitkraam wel waar is heb ik een 1:1 CD gedownload. De download bestaat uit 15 Wave bestanden met een totale grootte van 576MB. Nadat ik deze met een command line programmaatje (oggenc2) heb gedecodeerd tot Ogg Vorbis bestanden bleef er nog maar 46,0 MB van over (=wtf!). Ook heb ik de Wave bestanden gedecodeerd tot MP3'tje (320Kbps) (De Call of Duty reeks maakt gebruik van MP3 compressie) en dit zijn de resultaten:

Wave: 576 MB (604.424.676 bytes)
MP3: 130 MB (137.019.375 bytes)
Ogg Vorbis: 46,0 MB (48.304.268 bytes)

Terug naar Left4Dead2, hier zitten 4.929GB aan Wave bestanden in!!! Dat is bijna de halve game! Nadat ik deze gedecodeerd heb na Ogg Vorbis bestanden en heb ingepakt met de simpele tool FreeARC is er nog maar 504MB van over! Dat is een afname van bijna 90%!! En dat al alleen met het inpakken van de muziek! Dan hebben we het nog niet over de models e.d.

Conclusie
Op gebied van compressie kunnen we nog veel leren, in deze kleine blogpost wil ik graag laten zien wat we op dit moment al kunnen maar niet doen. In deze post heb ik het alleen over muziek gehad, ik ga het hierna nog over andere bestanden houden. Ook zal ik het nog is goed hebben over de verschillende manieren om iets te comprimeren.

Voor alle duidelijkheid
Na een aantal reacties wil ik graag het volgende toevoegen, ik heb deze post gemaakt om te laten zien wat nu mogelijk is, zonder rare dingen te hoeven te gebruiken. Voor ontwikkelaars is het ook niet veel werk om Ogg Vorbis toe te voegen aan de game aangezien het gewoon een 'Dll-bestandje' is wat ze moeten toevoegen (hetzelfde als bij MP3 en WAV, of voor video Bink bestanden). Het is misschien nog wel minder werk omdat er geen gezeur meer is over patenten e.d. Het decoderen van een Wave bestand naar Ogg Vorbis duurt ongeveer net zolang als van Wave naar MP3. Het afspelen van Ogg'jes slaat er ook niet in, vrijwel niets is er voor nodig (net als de andere formaten).

Q: Wav/Wave ~OMG~ wat is het verschil?
A: Een Wave bestand heeft als extentie .wav het zijn dus de zelfde bestanden.
Q: Kan ik Ogg Vorbis nu ook al gebruiken?
A: Jup, gratis te downloaden via http://www.vorbis.com/ :)
Q: En Direct Play en Portable dan? Wat is daar het verschil tussen.
A: In principe wordt er hetzelfde mee bedoelt :D