Posts by KillBill_158

    Man könnte ja so Sachen nehmen wie „Zum Selbst ist der Mann“, „Zum Hand anlegen“, „Zur Handarbeit“ oder „Zum Handgriff“ – klingt alles ein bisschen sprichwörtlich und subtil, ohne zu sehr in die Vollen zu gehen.


    Aber mal ehrlich: Wir wissen doch, worauf das Original hinauswill – „Cock Sucker“ oder „Cock Fucker“, also auf Deutsch etwa „Schwanzlutscher“ oder „Ficker“. Deshalb würde ich etwas wie „Zum Eichelputzer“ nehmen – mein absoluter Favorit da auch eine schöne Anspielung auf das Eichhörnchen. Eindeutig, witzig und trotzdem pub-tauglich.


    Wenn man es dagegen wirklich harmlos nehmen wollte, könnte man fast wörtlich übersetzen: „Zum Hühnchen rupfen“ (Cock = Hahn, Plucker = zupfen). Aber seien wir ehrlich – beim Spiel ist das wohl kaum gemeint. 😏

    Es fehlen noch die Hash-Werte der ISO. Auch wenn der Delta-Patcher später ohnehin eine vollständige und passende ISO voraussetzt, sind die Hash-Werte hilfreich, um die richtige Version schneller zu finden und eindeutig zu identifizieren. Mit dem Hash kann man sicherstellen, dass man genau die ISO nutzt, für die der Patch vorgesehen ist, und so mögliche Fehler oder Inkompatibilitäten von Anfang an ausschließt.  <3

    0.) Allgemeine Info (kurz)



    Huffman-Coding ist eine verlustfreie, präfixfreie Kompression: häufige Zeichen bekommen kürzere Bitfolgen – perfekt zum effizienten Speichern und Dekomprimieren.



    1.) Beispiel-Eingabe:

    "ABRACADABRA"


    • Länge: 11 Zeichen → ursprünglich 11 × 8 Bit = 88 Bit.
    • Zählen der Häufigkeiten:
      • A: 5, B: 2, R: 2, C: 1, D: 1


    2.) Sortieren & Baum bauen


    1. Lege jede Zeichen-Frequenz als Blatt an und sortiere (Priority Queue):
      [C:1, D:1, B:2, R:2, A:5]
    2. Nimm die beiden geringsten → C(1)+D(1)=2 → neuer Knoten [CD:2].
    3. Queue neu sortiert: [B:2, R:2, CD:2, A:5]
    4. Weiter so: B(2)+R(2)=4 → [BR:4]
    5. Nochmals: CD(2)+BR(4)=6 → [CD/BR:6]
    6. Schließlich: A(5)+6=11 → Root [gesamt:11]
      So entsteht der Huffman-Baum.


    3.) Bitcodes zuweisen


    • Linker Zweig = 0, rechter = 1.
    • Lauf durch den Baum zum Blatt = Code:

    Zeichen

    Code

    A

    0

    R

    10

    B

    111

    C

    1100

    D

    1101


    4.) Kodieren des Strings



    Original: A B R A C A D A B R A

    Bitfolgen ersetzen:



    Ergebnis:




    🎯 Was ist Canonical Huffman- Codierung?



    Beim Standard-Huffman müssen Baumstruktur und Codewörter übertragen werden – das kostet Platz. Bei der kanonischen Version reicht es, nur Code‑Längen zu speichern. Der Empfänger kann dann die Codes selbst rekonstruiert erzeugen .



    🔄 1. Ausgangslage: Normale Huffman-Codes


    Aus dem Standard-Huffman-Prozess für “ABRACADABRA” haben wir z. B. folgende Code-Längen:


    Code
    Symbol : Häufigkeit : Länge
    A      : 5           : 1
    B      : 2           : 3
    R      : 2           : 3
    C      : 1           : 4
    D      : 1           : 4

    (Details wie im bisherigen Beispiel mit dem Baum.)



    📊 2. Kanonischer Prozess: Sortieren


    Sortiere nach Code-Länge, dann alphabetisch:


    Code
    1 bit: A
    3 bit: B, R
    4 bit: C, D


    🧮 3. Kanonische Codes berechnen


    • Erstes Symbol jeder Länge bekommt den kleinstmöglichen Code (alles Nullen).
    • Danach: vorheriger Code + 1, dann bei Längensprung nach links shift bis zur neuen Länge.


    Schritt-für-Schritt:


    1. A (1 Bit)
      • Start bei 0 → Code: 0
      • nextCode = 0 + 1 = 1
    2. B (3 Bit)
      • Längensprung von 1 auf 3 → shift left um (3−1)=2 → 1<<2 = 4 (100)
      • Code für B = 100
      • nextCode = 4 + 1 = 5
    3. R (3 Bit)
      • gleiche Länge → kein shift → nextCode = 5 (101) → Code 101
      • nextCode = 5 + 1 = 6
    4. C (4 Bit)
      • Längensprung von 3 auf 4 → 6<<1 = 12 (1100) → Code 1100
      • nextCode = 12 + 1 = 13
    5. D (4 Bit)
      • gleiche Länge → nextCode = 13 (1101) → Code 1101
      • nextCode = 13 + 1 = 14


    Kanonische Codes:


    Code
    A = 0
    B = 100
    R = 101
    C = 1100
    D = 1101


    📦 4. Kodieren mit kanonischen Codes


    String: A B R A C A D A B R A


    Ersetzungen:

    Code
    A → 0
    B → 100
    R → 101
    C → 1100
    D → 1101


    Resultierende Bitfolge:


    Code
    0 100 101 0 1100 0 1101 0 100 101 0
    = 0|100|101|0|1100|0|1101|0|100|101|0


    Gesamtlänge: 1 + 3 + 3 + 1 + 4 + 1 + 4 + 1 + 3 + 3 + 1 = 25 Bit


    Minimal über Standard-Huffman (23 Bit), aber nur Code-Längen sind kodiert – also sparen wir Baum-Overhead.


    🎯 Vorteile

    • Du speicherst nur [1,3,3,4,4] statt ganzer Baumstruktur.
    • Empfänger baut Codes neu auf, spart Bytes.
    • Schnelle Decodierung durch einfache Inkremente und Shifts.

    ✅ Zusammenfassung

    1. Normale Huffman-Codes errechnen & Längen speichern
    2. Sortieren nach Länge/Alphabet
    3. Kanonische Codes mit Sequenz, Shifts & Inkrementen erzeugen
    4. Nur Längen mitsenden, Empfänger rekonstruiert Codes

    Cheers 🥂

    Ja xdelta wird da gerne benutzt im PC Bereich da es einige nötige Verbesserungen im Gegensatz zu den anderen Formaten hat. Für Rom‘s reichen meist die etablierten Formate völlig aus.