zip/deflade algoritme

Pagina: 1
Acties:

  • Thund3r|IA
  • Registratie: November 2000
  • Laatst online: 11-07-2025
Ik ben op zoek naar informatie over de manier waarop zipbestanden gecomprimeerd worden dmv het deflate algoritme. Ik heb de specificaties hiervan bekeken in RFC 1950, 1951 & 1952, en verdere uitleg hier en hier.
Voorzover ik het heb begrepen (correct me if im wrong) werkt het algoritme dmv een huffman boom en wordt deze overgezonden door de lengtes van de codes over te zenden, maar het is voor mij nog onduidelijk hoe dat precies in zn werk gaat (hoe bijvoorbeeld wordt vastgesteld welke code bij welk karakter hoort). Heeft iemand misschien meer gedetailleerde informatie over hoe het algoritme werkt of een stap-voor-stap voorbeeld van welke stappen genomen worden om de huffman boom over te zenden?

  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

In een Huffman boom krijgt het meest voorkomende patroon de korste code. Dus het gaat er juist om dat je algoritme makkelijk patronen kan vinden. Komt er iets heel weinig voor dan krijgt het een langecode. Dit alles wordt in een boom gegooit en kan door de boom aftelopen weer een compleet bestand worden. De codes die aan de nodes zelf hangen specificeer je en je bent klaar.

In een bestandje zou je zo iets kunnen krijgen:
|CODES|BOOM|CRC|

(was dit een goeie poging? netzoals de schrijver hierboven: correct me if i'm wrong)

Steun Elkaar, Kopieer Nederlands Waar!


  • nxt
  • Registratie: November 2001
  • Laatst online: 26-08 13:51

nxt

ik heb voor school in java dat huffman ding gemaakt,
ik hoefde het alleen niet naar een file weg te schrijven
dus ik mocht de boom in het geheugen houden.

Maar wat je schrijvt klopt volgens mij wel aardig, maar je moet niet vergeten dat elke code geen voorstuk van een andere mag zijn
waarmee ik bedoel
dat als bijv. 'a' de code 11 krijgt dat
'b' GEEN 111 mag zijn, maar wel bijv. 101 of 011

wat dus globaal inhoud dat bij het decoderen, je gewoon de bits kunt lezen en de boom aflopen (links/recht/.....) totdat je bij een letter komt.

hmmz.
* nxt heeft iets teveel wijn op en gaat maar eens naar bed.

  • PommeFritz
  • Registratie: Augustus 2001
  • Laatst online: 10-07 04:13

PommeFritz

...geen friet

Heb je wat aan de source code / docs van GNU zlib?

http://www.gzip.org/zlib/

Info-Zip is hier: http://www.info-zip.org/pub/infozip/Zip.html
Ook daar is de source van beschikbaar...

FireFox - neem het web in eigen hand