Adaptiven Huffman-Kodierung


LZH-Implementierung in Pascal

Autor: DOUGLAS WEBB

LZH Einheit;

{$A+,B-,D-,E-,F-,I+,L-,N-,O-,R-,S-,V-}

(*
* LZHUF. C Englisch Version 1.0
* Basierend auf der japanischen Version 29. November 1988
* LZSS codiert von Haruhiko OKUMURA
* Adaptiven Huffman-Kodierung von Haruyasu YOSHIZAKI codiert
* Bearbeitet und übersetzt Englisch von Kenji RIKITAKE
* Übersetzt von C in Turbo Pascal von Douglas Webb 18.02.91
* Aktualisieren und Fehler-Korrektur der TP-Version 29.04.91 (Sorry!!)
*)

{
Dieses Gerät ermöglicht dem Benutzer, mit einer Kombination aus Commpress-Daten
LZSS-Komprimierung und adaptiven Huffman-Kodierung, oder umgekehrt zu dekomprimieren
Daten, die zuvor von dieser Einheit komprimiert wurde.

Es gibt eine Reihe von Optionen, wo die Daten komprimiert /
Dekomprimiert ist aus kommend / gehend nach.

In der Tat erfordert es, dass Sie die Prozedur 'LZHPack' 2 prozessuale übergeben
Parameter vom Typ 'GetProcType' und 'PutProcType' (unten erklärt),
3 Parameter akzeptieren und Handeln in jeder Hinsicht wie ein 'BlockRead' / 'BlockWrite'
Remote Procedure Call. Die Prozedur 'GetProcType' sollten die Daten zurückzugeben.
um komprimierte und Ihre Prozedur 'PutProcType' sein sollte etwas mit zu tun
die komprimierten Daten (ie., steckte es in eine Datei). Für den Fall, dass du wissen musst (und
Sie tun, wenn Sie diese Daten wieder dekomprimieren möchten) die Anzahl der Bytes in der
Komprimierte Daten (originale, nicht komprimierte Größe) werden in 'Bytes_Written' zurückgegeben.

GetBytesProc = Prozedur (Var DTA; NBytes:Word; Var Bytes_Got: Wort);

DTA ist, sollte der Beginn einer Speicheradresse, wo die Informationen zurückgegeben
sein. NBytes ist die Anzahl der Bytes angefordert. Die tatsächliche Anzahl der Bytes
muss zurückgegeben werden in Bytes_Got übergeben, (falls noch keine Daten mehr dann 0
sollte zurückgegeben werden).

PutBytesProc = Prozedur (Var DTA; NBytes:Word; Var Bytes_Got: Wort);

Als ist oben außer anstatt zu Fragen, für die Daten des Verfahrens heraus dumping
Komprimierte Daten tun etwas mit ihm.

'LZHUnPack' ist im Grunde das gleiche in umgekehrter Reihenfolge. Es erfordert
verfahrenstechnischen Parametern vom Typ 'PutProcType' / 'GetProcType',
wird wie oben handeln. 'GetProcType' muss Daten komprimiert mit abrufen
'LZHPack' (oben) und stellt es an das Auspacken Routine wie gefordert.
'PutProcType' muss die dekomprimierten Daten akzeptieren und tun Sie etwas
innerhalb. Sie müssen auch die ursprüngliche Größe der dekomprimierten Daten übergeben,
Anderenfalls werden negative Ergebnisse haben.

Vergessen Sie nicht, die als verfahrenstechnische Parameter 'GetProcType' / 'PutProcType'
Verfahren müssen kompiliert werden, in den Zustand 'F +', eine Katastrophe zu vermeiden.

}

{Anmerkung: alle großen Datenstrukturen für diese Routinen werden vergeben, wenn
aus dem Heap benötigt, und freigegeben, wenn fertig. So, wenn nicht in Gebrauch
Speicheranforderungen sind minimal. Dieses Gerät verwendet jedoch etwa 34K
Heap-Speicher und 400 Bytes vom Stapel, wenn Sie im Einsatz.








Adaptiven Huffman-Kodierung


Adaptiven Huffman-Kodierung : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


LZH-Implementierung in Pascal

Autor: DOUGLAS WEBB

LZH Einheit;

{$A+,B-,D-,E-,F-,I+,L-,N-,O-,R-,S-,V-}

(*
* LZHUF. C Englisch Version 1.0
* Basierend auf der japanischen Version 29. November 1988
* LZSS codiert von Haruhiko OKUMURA
* Adaptiven Huffman-Kodierung von Haruyasu YOSHIZAKI codiert
* Bearbeitet und übersetzt Englisch von Kenji RIKITAKE
* Übersetzt von C in Turbo Pascal von Douglas Webb 18.02.91
* Aktualisieren und Fehler-Korrektur der TP-Version 29.04.91 (Sorry!!)
*)

{
Dieses Gerät ermöglicht dem Benutzer, mit einer Kombination aus Commpress-Daten
LZSS-Komprimierung und adaptiven Huffman-Kodierung, oder umgekehrt zu dekomprimieren
Daten, die zuvor von dieser Einheit komprimiert wurde.

Es gibt eine Reihe von Optionen, wo die Daten komprimiert /
Dekomprimiert ist aus kommend / gehend nach.

In der Tat erfordert es, dass Sie die Prozedur 'LZHPack' 2 prozessuale übergeben
Parameter vom Typ 'GetProcType' und 'PutProcType' (unten erklärt),
3 Parameter akzeptieren und Handeln in jeder Hinsicht wie ein 'BlockRead' / 'BlockWrite'
Remote Procedure Call. Die Prozedur 'GetProcType' sollten die Daten zurückzugeben.
um komprimierte und Ihre Prozedur 'PutProcType' sein sollte etwas mit zu tun
die komprimierten Daten (ie., steckte es in eine Datei). Für den Fall, dass du wissen musst (und
Sie tun, wenn Sie diese Daten wieder dekomprimieren möchten) die Anzahl der Bytes in der
Komprimierte Daten (originale, nicht komprimierte Größe) werden in 'Bytes_Written' zurückgegeben.

GetBytesProc = Prozedur (Var DTA; NBytes:Word; Var Bytes_Got: Wort);

DTA ist, sollte der Beginn einer Speicheradresse, wo die Informationen zurückgegeben
sein. NBytes ist die Anzahl der Bytes angefordert. Die tatsächliche Anzahl der Bytes
muss zurückgegeben werden in Bytes_Got übergeben, (falls noch keine Daten mehr dann 0
sollte zurückgegeben werden).

PutBytesProc = Prozedur (Var DTA; NBytes:Word; Var Bytes_Got: Wort);

Als ist oben außer anstatt zu Fragen, für die Daten des Verfahrens heraus dumping
Komprimierte Daten tun etwas mit ihm.

'LZHUnPack' ist im Grunde das gleiche in umgekehrter Reihenfolge. Es erfordert
verfahrenstechnischen Parametern vom Typ 'PutProcType' / 'GetProcType',
wird wie oben handeln. 'GetProcType' muss Daten komprimiert mit abrufen
'LZHPack' (oben) und stellt es an das Auspacken Routine wie gefordert.
'PutProcType' muss die dekomprimierten Daten akzeptieren und tun Sie etwas
innerhalb. Sie müssen auch die ursprüngliche Größe der dekomprimierten Daten übergeben,
Anderenfalls werden negative Ergebnisse haben.

Vergessen Sie nicht, die als verfahrenstechnische Parameter 'GetProcType' / 'PutProcType'
Verfahren müssen kompiliert werden, in den Zustand 'F +', eine Katastrophe zu vermeiden.

}

{Anmerkung: alle großen Datenstrukturen für diese Routinen werden vergeben, wenn
aus dem Heap benötigt, und freigegeben, wenn fertig. So, wenn nicht in Gebrauch
Speicheranforderungen sind minimal. Dieses Gerät verwendet jedoch etwa 34K
Heap-Speicher und 400 Bytes vom Stapel, wenn Sie im Einsatz.

Adaptiven Huffman-Kodierung

Adaptiven Huffman-Kodierung : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Adaptiven Huffman-Kodierung
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung