Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » LZ77 Komprimierung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.01.2005, 13:21 Uhr
proga



Hallo Leute,

sorry wenn mein Post hier nicht reinpasst, aber ich wusste sonst nicht wo er reingehört

Ich muss gerade einen PNG encoder programmieren und habe ein paar Verständnisfragen
an Euch, vielleicht könnt Ihr mir ja helfen. Also, die Daten werden bei der LZ77 Komprimierung
als Datentupel abgelegt, und zwar in der Form:

Position, LaengeUebereinstimmung, NaechstesNichtuebereinstimmen

Meine Frage ist nun, wie viele Bytes für die einzelnen Elemente zur Verfügung stehen,
also den Datentyp muss ich wissen.

Bitte keine Verweise auf zlib pnglib oder so, weil
1. die Libs kann ich nicht nehmen, da ich auf einer anderen Plattform arbeite.
2. würde viel Zeit brauchen um sich in die umfangreichen Libs einzuarbeiten
und einigermaßen den durchblick zu bekommen

Danke im Voraus.

Dieser Post wurde am 10.01.2005 um 13:22 Uhr von proga editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.01.2005, 22:15 Uhr
typecast
aka loddab
(Operator)


Also was du fuer Datentypen nimmst, sollte von zwei Dingen ab:

1.) Die Laenge des Puffers
2.) Die Groesse des "Zeichens", dass du untersuchst.

Also:

Der Datentyp von Position haengt von der Puffergroesse ab. Und zwar muss er so gross sein. Das er jede Position [0, puffergroesse] enthalten kann.
Wenn dein Suchfenster < 256 "Zeichen" enthaelt, dann bietet sich ein unsigned char an.

Fuer die Laenge der Uebereinstimmung gilt das gleiche. Die Uebereinstimmung kann nicht groesser sein, als dein Suchfenster, kann aber die groesse des Suchfensters erreichen.

Die groesse des naechsten nicht uebereinstimmenden Zeichens, haengt davon ab, wie gross die Bitreihen sind, die du Untersuchst.
Wenn du 1 Byte Bloecke auf Uebereinstimmungen untersuchst, dann kannst du auch hier den Datentyp unsigned char verwenden.

Ich kann dir leider nicht sagen, welche Zeichenlaenge sich in der praxis bewaehrt. Das solltest du vielleicht irgendwo nachlesen bzw es einfach ausprobieren.

Viel Spass.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: