De wet van Shannon is uit 1948..quote:Op vrijdag 22 juli 2005 15:02 schreef BUG80 het volgende:
Het blijft natuurlijk theoretisch gewauwel, maar 60 jaar geleden geloofde ook niemand dat je muziek op kon slaan op 1/7 van de grootte, zonder perceptioneel verlies. Zeg nooit nooit!
Das best pittig voor de kappersschool, niet?quote:Op vrijdag 22 juli 2005 15:05 schreef SunChaser het volgende:
Waar hebben jullie allemaal gestudeerd In mijn tijd kregen we gewoon economie en geschiedenis over Willem van Oranje op school
Dat ging niet over perceptioneel coderen, toch. De werking van het oor is pas halverwege de jaren '50 in detail onderzocht.quote:Op vrijdag 22 juli 2005 15:06 schreef Pietverdriet het volgende:
[..]
De wet van Shannon is uit 1948..
Och... Je hebt soms mensen die een Balthazar Gerards kapsel willenquote:Op vrijdag 22 juli 2005 15:08 schreef Pietverdriet het volgende:
[..]
Das best pittig voor de kappersschool, niet?
Zet je onduleerijzers maar aan...quote:Op vrijdag 22 juli 2005 15:13 schreef SunChaser het volgende:
[..]
Och... Je hebt soms mensen die een Balthazar Gerards kapsel willen
Mooi!quote:Op vrijdag 22 juli 2005 15:20 schreef gelly het volgende:
Overigens heb ik nu even 'snel' een applet geschreven die mijn compressiemethode simpel laat zien, ik zal hem even ergens parkeren.
Hold your horses Het is een applet om te laten zien dat compressie van meer dan 50% mogelijk is en dat die compressie toeneemt naarmate het te coderen getal groter wordt...quote:Op vrijdag 22 juli 2005 15:46 schreef gnomaat het volgende:
[..]
Mooi!
Ik heb hier vast een voorbeeldbestandje neergezet:
http://www.free-space.us/gnomaat/compression_test.zip (zit een file van 10 KB in)
Deze zip is nog niet password protected ofzo, maar kun je vast kijken of het een beetje werkt.
* yootje biedt webspace aan.quote:Op vrijdag 22 juli 2005 15:54 schreef gelly het volgende:
[..]
Hold your horses Het is een applet om te laten zien dat compressie van meer dan 50% mogelijk is en dat die compressie toeneemt naarmate het te coderen getal groter wordt...
Ik zoek alleen even een webspace om de boel te dumpen, ben het wachtwoord van de mijne kwijt...
Beweert die applet nu dat het zulke grote priemgetallen in 1 byte codeert?quote:Op vrijdag 22 juli 2005 16:15 schreef gelly het volgende:
http://www.free-space.us/primer/Applet1.html
Je kunt deze applet beter in een standalone viewer bekijken, zowel firefox als IE zweten nogal als het ingegeven getal erg groot wordt. Het loopt niet vast, al lijkt het wel zo.
Ja, ik sla namelijk niet de priemgetallen zelf op, alleen het hoeveelste Mersenne priemgetal het is.quote:Op vrijdag 22 juli 2005 16:25 schreef XoxIx het volgende:
[..]
Beweert die applet nu dat het zulke grote priemgetallen in 1 byte codeert?
Dan kan je dus nog theoretisch veel meer compressie halen door hierna nog eens Huffman compressie er overheen te halen (de zip-methode).quote:Op vrijdag 22 juli 2005 16:27 schreef gelly het volgende:
[..]
Ja, ik sla namelijk niet de priemgetallen zelf op, alleen het hoeveelste Mersenne priemgetal het is.
Je rekent niet correct. Je input mag maar 10 verschillende waarden hebben (0..9), maar het rangnummer van je priemgetal kan best 1.000.000 zijn (dus 1 miljoen verschillende waarden).quote:Op vrijdag 22 juli 2005 16:27 schreef gelly het volgende:
[..]
Ja, ik sla namelijk niet de priemgetallen zelf op, alleen het hoeveelste Mersenne priemgetal het is.
Klopt, daarom werkt het ook niet bij kleine getallen, nou ja het werkt wel maar er is verlies. Ik gebruik enorm grote priemgetallen die in kleine notatie worden weergegeven. Test het maar in de applet, je zal zien dat hoe groter de getallen worden hoe groter de compressie wordt.quote:Op vrijdag 22 juli 2005 16:37 schreef XoxIx het volgende:
[..]
Je rekent niet correct. Je input mag maar 10 verschillende waarden hebben (0..9), maar het rangnummer van je priemgetal kan best 1.000.000 zijn (dus 1 miljoen verschillende waarden).
Als je het goed wilt doen moet je dus berekenen hoe lang de decimale representatie is van je priemgetallen. Bijvoorbeeld:
121 = 101 + 19 + 2
Dat wordt niet: 3 voor 3 met geen compressie, maar 6 voor 3 is 100% verlies.
Zelfs nu wordt er nog wat gesjoemeld, maar niet meer zo erg als dat in het applet gebeurt.
Als je je applet hebt aangepast. Je telt het aantal priemgetallen dat je gebruikt, niet het aantal tekens dat je gebruikt, terwijl je bij de input kijkt naar het aantal tekens.quote:Op vrijdag 22 juli 2005 16:42 schreef gelly het volgende:
[..]
Klopt, daarom werkt het ook niet bij kleine getallen, nou ja het werkt wel maar er is verlies. Ik gebruik enorm grote priemgetallen die in kleine notatie worden weergegeven. Test het maar in de applet, je zal zien dat hoe groter de getallen worden hoe groter de compressie wordt.
Hij heeft gelijk, ja. Als je het goed wil doen moet je alle 256 mogelijke karakters die je kunt maken met een byte accepteren. Het getal '121' kun je namelijk makkelijk in 1 byte kwijt, terwijl jij het in 3 stopt en er vervolgens weer 3 van maakt.quote:Op vrijdag 22 juli 2005 16:37 schreef XoxIx het volgende:
[..]
Je rekent niet correct. Je input mag maar 10 verschillende waarden hebben (0..9), maar het rangnummer van je priemgetal kan best 1.000.000 zijn (dus 1 miljoen verschillende waarden).
Als je het goed wilt doen moet je dus berekenen hoe lang de decimale representatie is van je priemgetallen. Bijvoorbeeld:
121 = 101 + 19 + 2
Dat wordt niet: 3 voor 3 met geen compressie, maar 6 voor 3 is 100% verlies.
Zelfs nu wordt er nog wat gesjoemeld, maar niet meer zo erg als dat in het applet gebeurt.
Ik kan elk gebruikt priemgetal opslaan in 1 byte, dus waarom zou ik daar rekening mee moeten houden ? Het integere getal dat je ingeeft is in feite de integere weergave van data. Het is niet zo dat dat getal in een bestand komt te staan.quote:Op vrijdag 22 juli 2005 16:44 schreef XoxIx het volgende:
[..]
Als je je applet hebt aangepast. Je telt het aantal priemgetallen dat je gebruikt, niet het aantal tekens dat je gebruikt, terwijl je bij de input kijkt naar het aantal tekens.
Zie mijn post. Je telt getallen tot 256 als 3 karakters/bytes in plaats van 1.quote:Op vrijdag 22 juli 2005 16:48 schreef gelly het volgende:
[..]
Ik kan elk gebruikt priemgetal opslaan in 1 byte, dus waarom zou ik daar rekening mee moeten houden ? Het integere getal dat je ingeeft is in feite de integere weergave van data. Het is niet zo dat dat getal in een bestand komt te staan.
Uhm nee. Ik kan met een byte aangeven welke plaats het priemgetal heeft in de index van Mesenne priemgetallen. Je moet die getallen niet als karakters zien maar als de integere weergave van bytes.quote:Op vrijdag 22 juli 2005 16:49 schreef BUG80 het volgende:
[..]
Zie mijn post. Je telt getallen tot 256 als 3 karakters/bytes in plaats van 1.
Juist. Maar in de invoer doe je dat niet en dat is niet eerlijk. De volgende invoer sequentie:quote:Op vrijdag 22 juli 2005 16:51 schreef gelly het volgende:
[..]
Uhm nee. Ik kan met een byte aangeven welke plaats het priemgetal heeft in de index van Mesenne priemgetallen. Je moet die getallen niet als karakters zien maar als de integere weergave van bytes.
Als ik dit omzet naar (ASCII) getallen wordt het:quote:N‹'³aÜÛ˜æ
In getallen 0-9 heeft het dus een lengte van 27 bytes. Jouw applet geeft:quote:78 139 39 179 97 220 219 152 127 230
Kortom, hij vergroot het bestand van 10 naar 21 bytes!!quote:Used primes : 21 for 27 decimals
Compression is 77 %
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |