Huffman Kodierung

Neue Frage »

Auf diesen Beitrag antworten »
123michi19 Huffman Kodierung

Meine Frage:
Hi zusammen,

behandelt wird momentan die Huffman - Kodierung in der Vorlesung. Ich habe jetzt zahlreiche Youtube - Videos angeschaut, den Anfang verstehe ich noch (also das die Häufigkeit der Buchstaben gezählt werden muss).

Aber das was danach kommt, ist mir ein Rätsel. Könnt ihr mir hiermit bitte weiterhelfen?

Meine Ideen:
Vielen Dank :-)
 
Auf diesen Beitrag antworten »
eulerscheZahl

Das Vorgehen ist z.B. in der Wikipedia beschrieben.

Beispiel: der Text ist aababcabcd
Also nach Anzahl der Vorkommen:
a: 4
b: 3
c: 2
d: 1

das ganze wollen wir binär speichern, daher ist m = 2 (es gibt nur 0 und 1)
wir suchen also die beiden(da m=2) Teilbäume mit der geringsten Anzahl, das sind c und d.
Die werden zu einem Baum zusammengefügt, sodass sich folgendes Bild ergibt: (Häufigkeit in Klammern)
code:
1:
2:
3:
4:
5:
6:
7:
a(4)

b(3)

   / c(2)
cd(3)
   \ d(1)

jetzt wieder die beiden Äste mit der geringsten Häufigkeit zusammenfassen
code:
1:
2:
3:
4:
5:
6:
7:
a(4)

    / b(3)
bcd(6)
          / c(2)
    \ cd(3)
          \ d(1)

wenn jetzt wieder die beiden Bäume mit der geringsten Häufigkeit zusammengefasst werden, gibt es nur noch einen Baum.

Jetzt musst du nur noch bestimmen, dass der eine Ast der 0 und der andere der 1 entspricht. Die Zuordnung ist dabei willkürlich.
Auf diesen Beitrag antworten »
123michi19

Vielen Dank für deine schnelle Antwort. Da ich solche Aufgaben dann auch immer gerne selber versuche, habe ich mir mal das Wort: abrakadabra ausgesucht. Das Bild dazu ist im Anhang. Wäre super, wenn du einen Blick darauf werfen könntest großes Grinsen
Auf diesen Beitrag antworten »
eulerscheZahl

sieht gut aus Daumen hoch
und als Binärmuster (wenn der obere Ast die 1 ist):
1 001 01 1 0000 1 0001 1 001 01 1
 
Auf diesen Beitrag antworten »
123michi19

Dankeschön smile , Zum Binärmuster hätte ich allerdings noch die Frage wie man da drauf kommt?
Auf diesen Beitrag antworten »
eulerscheZahl

Ganz einfach: bei jeder Verzweigung kannst du festlegen, welcher der beiden Äste eine 0 und welcher eine 1 bekommt (frei wählbar). Um auf die Kodierung für den einzelnen Buchstaben zu kommen, musst du nur noch die Pfad von der Wurzel zum Buchstaben entlanggehen und die die 0en und 1en notieren, die du unterwegs einsammelst. Die Wurzel für dein Beispiel mit abrakadabra ist ganz links, das a hängt schon am 1. Ast.
Auf diesen Beitrag antworten »
123michi19

Vielen Dank für deine Hilfe :-)
Auf diesen Beitrag antworten »
123michi19

Sorry das ich das Thema noch einmal aufgreifen muss, aber ich dachte es verstanden zu haben. Ich bekomme das Auslesen des Binärmusters einfach nicht hin und bräuchte dazu bitte noch einmal Hilfe verwirrt
Auf diesen Beitrag antworten »
eulerscheZahl

Ist die Grafik klar, die ich in meinem letzten Beitrag angefügt habe?
Nehmen wir z.B. den Buchstaben k: von der Wurzel aus muss man die Äste 0, 0 und 1 nehmen, um dorthin zu gelangen. k wird also durch 001 dargestellt.
Auf diesen Beitrag antworten »
123michi19

Wenn ich es richtig verstehe, müsste r und d dann auch 001 sein?
Auf diesen Beitrag antworten »
eulerscheZahl

r is 01 und d ist 0001
Wie du siehst, braucht d 4 Bit zur Speicherung, also mehr als r. Das ist auch sinnvoll, da d nur einmal vorkommt.

Ich sehe gerade, ich habe im Graphen Mist gebaut: ich habe versehentlich b und k vertauscht, auf deinem Blatt (Foto) ist es noch richtig.
Auf diesen Beitrag antworten »
123michi19

Besten Dank für die Rückantwort :-) Daumen hoch
Auf diesen Beitrag antworten »
123michi19

Es ist schon wieder ein paar Wochen her wo das Thema behandelt wurde. Daher habe ich mich noch einmal an dem Wort taucher versucht.

Könntest du das bitte für mich noch einmal überprüfen, ob das so stimmt?

Vielen Dank :-)

PS: (@ eulerscheZahl) Wie kann ich mich bei dir denn einmal bedanken? Du hast mir schon so oft weitergeholfen und das ist nun wirklich nicht selbstverständlich :-)
Auf diesen Beitrag antworten »
eulerscheZahl

Dein Baum ist richtig (als einer von 20160 möglichen, wenn ich mich nicht verrechnet habe).
Ich habe eine Seite gefunden, die dir Bäume generieren kann: huffman.ooz.ie

Es reicht vollkommen, wenn du hier immer artig danke sagst, ist mehr als manch andere tun smile
An der Stelle ein Zitat über die Ziele der Seite:
Zitat:
Fragen können kostenlos und ohne jegliche Registrierung im Forum gestellt werden.
Auf diesen Beitrag antworten »
123michi19

Dann nochmal ein herzliches Dankeschön für die Hilfe smile
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »