Klaus Junge: GIF-Dateiformat (k2)

Beitrag lesen

Hallo Cheatah,

also weiter, jetzt kommt das Beispiel.

Laß uns ein 4-Zeichen-Alphabet vorgeben : A,B,C,D.
Der Eingangsstrom möge ABACABA lauten.

Laß es uns nun komprimieren.

Die 'string table' initialisieren wir auf:
#0=A,  
#1=B,
#2=C,
#3=D.

Eingangsstrom = ABACABA.
  [.c.]         = -------.
  string table  = A,B,C,D.
  Ausgangsstrom = .

Das erste Zeichen des Eingangsstroms ist A,
A ist in der 'string table' enthalten,
also wird [.c.] zu A. Sonst nichts.

Eingangsstrom = -BACABA.
  [.c.]         = A------.
  string table  = A,B,C,D.
  Ausgangsstrom = .

Dann bekommen wir AB, welches nicht in der
'string table' Tabelle enthalten ist, daher
schreiben wir #0 (für [.c.]) in den Ausgangs-
strom und tragen AB als code#4 in die 'string
table' ein.

Eingangsstrom = --ACABA.
  [.c.]         = AB-----.
  string table  = A,B,C,D,AB.
  Ausgangsstrom = 0.

[.c.] wird B und wir holen uns noch A aus dem
Eingangsstrom und [.c.]A = BA. Es ist nicht
in der 'string table' enthalten, also schreiben
wir code#1 in den Ausgangsstrom und tragen
BA als code#5 in die 'string table' ein.

Eingangsstrom = ---CABA.
  [.c.]         = -BA----.
  string table  = A,B,C,D,AB,BA.
  Ausgangsstrom = 0,1.

[.c.] wird zu A und wir holen uns C aus dem
Eingangsstrom und [.c.]C = AC. Es ist nicht
in der 'string table' enthalten, also schreiben
wir code#0 in den Ausgangsstrom und tragen AC
als code#6 in die 'string table' ein.

Eingangsstrom = ----ABA.
  [.c.]         = --AC---.
  string table  = A,B,C,D,AB,BA,AC.
  Ausgangsstrom = 0,1,0.

[.c.] wird nun zu C und wir holen uns A aus dem
Eingangsstrom und [.c.]A = CA. Es ist nicht
in der 'string table' enthalten, also schreiben
wir code#2 für C in den Ausgangsstrom und tragen
CA als code#7 in die 'string table' ein.

Eingangsstrom = -----ABA.
  [.c.]         = ---CA---.
  string table  = A,B,C,D,AB,BA,AC,CA.
  Ausgangsstrom = 0,1,0,2.

Nun wird [.c.] zu A und wir holen uns B aus dem
Eingangsstrom und [.c.]B = AB. Es IST  in der
'string table' enthalten und wir suchen nach ABA,
welches nicht in der 'string table' enthalten ist,
also schreiben wir code#4 für AB in den Ausgangs-
strom und tragen ABA als code#8 in die 'string
table' ein.

Eingangsstrom = ------A.
  [.c.]         = ----AB-.
  string table  = A,B,C,D,AB,BA,AC,CA,ABA.
  Ausgangsstrom = 0,1,0,2,4.

[.c.] wird zu A und der Eingangsstrom ist leer,
also schreiben wir einfach code#0 für A in den
Ausgangsstrom und sind fertig.

Eingangsstrom = -------.
  [.c.]         = ------A.
  string table  = A,B,C,D,AB,BA,AC,CA,ABA.
  Ausgangsstrom = 0,1,0,2,4,0.

Cheatah, hast Du es nun kapiert?
Ich kann mir nun irgendwie vorstellen wie
sowas abläuft, vielleicht könnte ich mit
dem obigen Pseudocode auch einen allerersten
Programmprototypen zusammenbasteln, kapiert
habe ich aber noch keineswegs.
Im Moment stolpere ich aber über das ABA
in der strig table, ich hätte eher angenommen,
daß die Felder nur max. 2 Zeichen breit werden.

Für heute (Abend) reicht's.
Fortsetzung folgt.

Klaus

PS: Klar, daß 'fertige Arbeit' in Form von GD.PM
oder dgl. vermutlich weniger Schwellenangst bedeutet.
Ob das letzlich, vielleicht auch über mehrere Projekte,
wirklich weniger Arbeit ist, das mag dahingestellt sein.

Was mich an der Sache aber am meisten fasziniert, ist,
daß Cheatah, nach ein paar zaudernden Winkelzügen und
ziemlicher Verzweiflung (*heul*) nun rangeht 'wie Blücher'.

Sein erstes Posting:
.gif erstellen mit Perl von Cheatah, 19.1.99, 15:39 Uhr.
Heute ist der 21.!

Er hat wohl so um die 30h gebraucht um ein broken IMG in
den Browser zu kriegen. Ist schon beachtlich!
Vielleicht überschätzt er sich noch bzw. unterschätzt
die Sache. Irgendwie hab' ich das Gefühl, daß er es packen
wird. Vielleicht dauert es noch 100h oder auch 200h bis
er wirklich ein unbroken IMG ins Web kriegt, danach
wird er aber der Crack sein, wird euch schön bunt zeigen
wie die zeitliche Verteilung von Fragen und Antworten
hier im Forum ist etc. Und, wir werden dasitzen und staunen.

Das lohnt seine Mühen doch allemal! Hut ab.

0 50

GIF-Dateiformat (1)

Klaus Junge
  1. 0

    GIF-Dateiformat (2)

    Klaus Junge
    1. 0
      Cheatah
      1. 0
        m0b
        1. 0
          m0b
          1. 0
            Cheatah
          2. 0
            Stefan Muenz
            1. 0
              Cheatah
    2. 0
      Cheatah
      1. 0
        Klaus Junge
        1. 0
          Klaus Junge
          1. 0
            Cheatah
            1. 0
              Klaus Junge
              1. 0
                Cheatah
    3. 0

      GIF-Dateiformat (2a)

      Klaus Junge
      1. 0
        Cheatah
        1. 0
          Klaus Junge
          1. 0
            Cheatah
            1. 0
              Klaus Junge
              1. 0
                Cheatah
              2. 0
                Calocybe
                1. 0
                  Cheatah
                  1. 0
                    Calocybe
                    1. 0
                      Cheatah
                      1. 0
                        Calocybe
        2. 0
          Jörk Behrends
  2. 0
    Olaf Grönemann
  3. 0

    GIF-Dateiformat (k1)

    Klaus Junge
    1. 0

      GIF-Dateiformat (k2)

      Klaus Junge
      1. 0
        Cheatah
        1. 0
          Klaus Junge
          1. 0
            Cheatah
      2. 0

        GIF-Dateiformat (k3)

        Klaus Junge
        1. 0
          Cheatah
        2. 0

          GIF-Dateiformat (k4)

          Klaus Junge
  4. 0

    GIF-Dateiformat (3=Palette)

    Klaus Junge
    1. 0
      Cheatah
      1. 0
        Klaus Junge
        1. 0
          Cheatah
  5. 0

    Aktueller Stand der Dinge

    Cheatah
    1. 0
      Klaus Junge
      1. 0
        Cheatah
      2. 0
        Calocybe
        1. 0
          Cheatah
  6. 0

    GIF-Dateiformat (test_1)

    Klaus Junge
    1. 0
      Cheatah
      1. 0
        Klaus Junge
        1. 0
          Klaus Junge
          1. 0
            Calocybe
          2. 0
            Cheatah