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
| 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 |
| 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 |