std.zlib

DEFLATE-Kompression als native Lyx-Implementierung gemäß RFC 1950 (zlib-Format) und RFC 1951 (DEFLATE-Algorithmus). LZ77-Sliding-Window (32 KB) für Rückwärts-Referenzen, statische Huffman-Kodierung, zlib-Header/Trailer mit Adler-32-Prüfsumme sowie CRC32. Kompressionsgrade 0–9 (0 = keine Kompression, 6 = Standard, 9 = beste Kompression). Dekompression mit ZlibDecompress/InflateDEFLATE.

Einsatzbereiche: HTTP Content-Encoding: gzip, Datei-Kompression, Datenbankblob-Speicherung (komprimierte JSON/XML), Netzwerkprotokoll-Kompression, Archivdateien.

Autor: Andreas Röne
Copyright: 2024-2025 Andreas Röne


Konstanten

Name Typ Wert Sichtbarkeit
Z_NO_COMPRESSION int64 0 pub
Z_BEST_SPEED int64 1 pub
Z_DEFAULT_COMPRESSION int64 6 pub
Z_BEST_COMPRESSION int64 9 pub
DEFLATE_WINDOW_SIZE int64 32768 pub
DEFLATE_WINDOW_MASK int64 32767 pub
HASH_SIZE int64 4096 pub
HASH_MASK int64 4095 pub
MIN_MATCH int64 3 pub
MAX_MATCH int64 258 pub
MAX_DISTANCE int64 32768 pub

Funktionen

Signatur Sichtbarkeit Beschreibung
BitWriteBit(output: pchar, pos: int64, bit: int64): int64 pub Einzelnes Bit in Ausgabepuffer schreiben
BitWriteBits(output: pchar, pos: int64, value: int64, num_bits: int64): int64 pub Mehrere Bits in Ausgabepuffer schreiben
BitFlush(output: pchar, pos: int64): int64 pub Verbleibende Bits in Puffer flushen
BitWriteByte(output: pchar, pos: int64, byte: int64): int64 pub Einzelnes Byte in Ausgabepuffer schreiben
Adler32(data: pchar, len: int64): int64 pub Adler-32-Prüfsumme berechnen
Adler32Update(current: int64, data: pchar, len: int64): int64 pub Adler-32-Prüfsumme inkrementell aktualisieren
CRC32(data: pchar, len: int64): int64 pub CRC-32-Prüfsumme berechnen
LITLEN_EOF int64 256 pub EOF-Symbol (256) für Literal/Length-Codes
GetFixedLiteralCode(code: int64): int64 pub Statischen Huffman-Code für Symbol liefern
GetFixedDistCode(dist: int64): int64 pub Statischen Huffman-Code für Distanz liefern
EncodeLitLen(output: pchar, bit_pos: int64, symbol: int64): int64 priv Literal-/Length-Symbol huffman-kodieren
EncodeDist(output: pchar, bit_pos: int64, dist: int64): int64 priv Distanzsymbol huffman-kodieren
GetLengthCode(len: int64): int64 priv DEFLATE-Length-Code für Länge ermitteln
DeflateCompressLZ77(input: pchar, input_len: int64, output: pchar): int64 pub LZ77-Sliding-Window-Kompression durchführen
DeflateCompress(input: pchar, input_len: int64, output: pchar): int64 pub DEFLATE-Kompression durchführen
ZlibCompress(input: pchar, input_len: int64, output: pchar, level: int64): int64 pub Zlib-Kompression mit Kompressionsgrad
ZlibCompressDefault(input: pchar, input_len: int64, output: pchar): int64 pub Zlib-Kompression mit Standardeinstellungen
ZlibCompressBound(input_len: int64): int64 pub Maximale Ausgabegröße für Kompression schätzen
ReadBit(data: pchar, pos: int64, len: int64, bit_pos: int64): int64 priv Einzelnes Bit aus Datenstrom lesen
ReadBits(data: pchar, pos: int64, len: int64, bit_pos: int64, num_bits: int64): int64 priv Mehrere Bits aus Datenstrom lesen
DecodeLengthValue(code: int64): int64 priv DEFLATE-Length-Code in Länge dekodieren
DecodeDistanceValue(extra_bits: int64, extra: int64): int64 priv DEFLATE-Distanzcode in Distanz dekodieren
DecodeHuffmanSymbol(data: pchar, len: int64, bit_pos: int64): int64 priv Huffman-Symbol aus Bitstream dekodieren
InflateDEFLATE(input: pchar, input_len: int64, output: pchar): int64 pub DEFLATE-komprimierte Daten dekomprimieren
ZlibDecompress(input: pchar, input_len: int64, output: pchar): int64 pub Zlib-Datenstrom dekomprimieren
ZlibDecompressToBuffer(input: pchar, input_len: int64, output: pchar, max_out: int64): int64 pub Zlib-Datenstrom in begrenzten Puffer dekomprimieren