wie trennen Hard- und Software den Datenstrom von Bits in die einzelnen Bytes auf? Bie fester Länge, z. B. immer 8 Bit je Byte muß man ja nur durchzählen. Wie aber ist das z. B. bei Huffman-Codierten Daten, bei denen die neudefinierten Zeichen (häufige mit kurzem, seltene mit langem Code) schließlich irgendwie auseinandergehalten werden müssen? (*korks*)
wie trennen Hard- und Software den Datenstrom von Bits in die
einzelnen Bytes auf? Bie fester Länge, z. B. immer 8 Bit je
Byte muß man ja nur durchzählen. Wie aber ist das z. B. bei
Huffman-Codierten Daten, bei denen die neudefinierten Zeichen
(häufige mit kurzem, seltene mit langem Code) schließlich
irgendwie auseinandergehalten werden müssen? (*korks*)
aeh, du solltest dir die grundlagen der huffmann-kodierung nochmal zu gemuete fuehren…
iirc gab es da so nen binaeren baum, und wenn man auf einem blatt angekommen war, war das zeichen halt zuende…
aeh, du solltest dir die grundlagen der huffmann-kodierung
nochmal zu gemuete fuehren…
iirc gab es da so nen binaeren baum, und wenn man auf einem
blatt angekommen war, war das zeichen halt zuende…
Hey Joe,
ich habe mir die Erklärungen zur Funktionsweise recht gründlich angesehen, aber hinsichtlich meiner Fragestellung habe ich nichts gefunden, was mich weiterbringt.
Ich will die Frage mal anders stellen: Sei 100010101110101101011010110101011010001011101011011011 ein Hufmann-Kodierter Grußtext, e=1, s=0, t=01, r=00, n=11, a=10, b=001, g=011, i=010, z=100, u=111, d=010. Nu mach mal ;o)
Ich will die Frage mal anders stellen: Sei
100010101110101101011010110101011010001011101011011011 ein
Hufmann-Kodierter Grußtext, e=1, s=0, t=01, r=00, n=11, a=10,
b=001, g=011, i=010, z=100, u=111, d=010. Nu mach mal ;o)
So wird das nix, weil tatsächlich nicht zu unterscheiden ist, ob ‚11‘ für ‚ee‘ oder ‚n‘ steht (z.B.) Deshalb wird auch kein (funktionierender) Huffmann-Algorithmus diese kodierung erzeugen. Würde tatsächlich ‚e‘ als ‚1‘ kodiert, würde der Code für jedes andere Zeichen mit einer ‚0‘ beginnen. Entsprechendes gilt für längere Codes. Wenn ein Zeichen als ‚101‘ kodiert wird, gibt es keine Kodierung ‚101x…‘, sondern nur ‚100x…‘ . Auf diese Weise ist immer eindeutig, wann ein Zeichen ‚fertig‘ ist.
l = 11
a = 101
e = 100
t = 011
\_ = 010
j = 0011
z = 0001
s = 0010
k = 000001
r = 000010
? = 000011
001110001100010110101011111100001001000000111101000010000011
Ich will die Frage mal anders stellen: Sei
100010101110101101011010110101011010001011101011011011 ein
Hufmann-Kodierter Grußtext, e=1, s=0, t=01, r=00, n=11, a=10,
b=001, g=011, i=010, z=100, u=111, d=010. Nu mach mal ;o)
So wird das nix, weil tatsächlich nicht zu unterscheiden ist,
ob ‚11‘ für ‚ee‘ oder ‚n‘ steht (z.B.) Deshalb wird auch kein
(funktionierender) Huffmann-Algorithmus diese kodierung
erzeugen. Würde tatsächlich ‚e‘ als ‚1‘ kodiert, würde der
Code für jedes andere Zeichen mit einer ‚0‘ beginnen.
Entsprechendes gilt für längere Codes. Wenn ein Zeichen als
‚101‘ kodiert wird, gibt es keine Kodierung ‚101x…‘, sondern
nur ‚100x…‘ . Auf diese Weise ist immer eindeutig, wann ein
Zeichen ‚fertig‘ ist.
l = 11
a = 101
e = 100
t = 011
_ = 010
j = 0011
z = 0001
s = 0010
k = 000001
r = 000010
? = 000011