Huffman-Codierung Teil 1: Was ist ein Huffman-Code überhaupt und wozu braucht man ihn? Coding Kurzgeschichten https://www.youtube.com/watch?v=jV8yOBLRZJE Transkript (automatisch erstellt) 0:00 [Musik] in einem hafen in kopieren bevor man es das beispiel anschauen der half men hat jeder geht es 0:19 eigentlich darum dass man nachrichten möglichst kompakt kombi komprimieren kann und zwar stets von der situation vor whiteboard hier befindet sich auf 0:35 der erde unseren blauen planeten auf dem mars fährt ein rover hinter gegend rum und der oper ist wirklich beschränkt er kann nur leistung treibt verstehen der 0:47 kann immer nur links und rechts das heißt ich habe nur zwei kommandos ist nicht sehr realistisch aber machen also 0:55 wenn ich jetzt wenn ich jetzt dem die nachrichten schicken und der rover weiß es gibt nur lässt und dann kann ich eigentlich links und rechts einfach 1:10 durch 0 und 1 unterscheiden ich kann ihnen sagen ok 0 ist links rechts des 1 alles was der robert braucht zum verständnis ist eigentlich 1:20 nur ein bit stream der krieg nun 1 0 0 0 1 1 1 und so weiter und er hat die übersetzungs tabelle das heißt man sagt auch das alphabet das 1:46 ist glaube ich so wählt einfach das was jetzt die sache ist was passiert wenn ich jetzt ein drittes zeichen dazu nehmen angenommen der oberseite die 1:54 fähigkeit haben dass er seine kamera nach oben schwingt ab ich bringe einen entrückten befehl ins ins spiel macht man das einmal 2:22 das ist natürlich die große frage wie realisiere ich das eigentlich und der witz ist ich kann ja nichts anderes machen es gibt ja nur zwei werte für 2:31 bits nämlich 0 und 1 ich muss einfach eine teilung machen ich sag zb nun ist immer und wenn ich 10 nehme dann sage ich ist das rechts und 2:46 11 ist zb ab wie ich jetzt eine kurze nachricht habe die schicke muss immer überlegen wie ich 3:05 diesen bitstream zusammenbau das heißt alles was ich tue ist ich schnappe mir einfach die nachricht 3:52 die ich dem team schicken will eben llr und hole mir dann jeweils den code aus der tabelle raus das heißt ich mache 00 das ist und ich schreib das 4:07 hintereinander an wenn man sich die tabelle anschaut dies absichtlich nicht zufällig so gebaut sondern ich gehe und sage wir einen 4:18 nuller kommt weiß ich ich muss links und wenn ein einsatz kommt muss ich eigentlich auf das nächste zeichen achten bei je nachdem ob das null oder 4:26 eins ist das eine mehr oder nur dass da was wir da sie ihn ist eigentlich eine namhafte und wieder schreibt was passiert wenn das vierte zeichen kommt 4:38 und das fünfte und so weiter dann muss ich diesen dieses schema immer komplexer mal entschuldigung immer komplizierter machen das was ich jetzt 4:50 auch noch mache ist angenommen man kommt sehr oft vor in einer sequenz und ich übersetzt das ganze mal wie ich sechs mal kurz vor jahr 5:31 das heißt ich mache einfach eine nachricht wo vieles drin und sind wenig l und ein paar und ein einziges r dann dann sieht man dass die länge von der 5:42 nachricht insgesamt aus den zeichen besteht also zehn biz eigentlich was jetzt die sache ist wenn ich jetzt nachrichten über schicke übersende 5:56 möchte ich ja eigentlich den die dinge möglichst kurz machen diese streams und wenn man mal schaut ist wenn ich dadurch dass das u12 biz besteht muss 6:11 ich eigentlich immerhin dreimal einsetzen da unten wenn er zb besteht aus zwei kids aber mein l kommt relativ selten vor 6:22 nur zweimal besteht aber aus einem bitterste was ist das schnee dass ich dass ich hier gehen kann dass sich die gesamte bit menge die jetzt sehen ist 6:34 dass ich die verkürzt wenn ich weiß dass um eine häufige mein häufigster buchstabe ist überlegt einmal schweiz immerhin den ding rein 6:48 den hat sich auch die werden sich das angeschaut haben der witz an der sache ist ich bin da im weg davids an der sache 6:59 ist dass ich werde mich bemühen hier punkten also arbeiten können wohingegen der überhaupt keiner gehört davids bei der 7:10 sache ist dass ich wenn ich ein zeichen häufig vorkommen haben kommt oft vor dann ist es eigentlich klug wenn ich den einziges bit gebe das heißt ich würde 7:25 die tabelle da oben am besten um ändern ist am häufigsten hat nur anbietern besten gebe ich dem liegenden ulla und dafür gebe ich dem l und den er jeweils 7:35 zwei bismarck ich einmal ihr habt das ding jetzt ausgetauscht und jetzt gehe ich ja und übersetzt mit der zweiten tabelle woche vielleicht am blauen 7:51 strich dazu dieser diese diesen bitstream noch einmal jetzt brauche für jeweils nur 0 ins rennen 8:33 so wird das ganze mit der zweiten tabelle über setzt und was man sieht ist dass die länge der nachricht kleiner wird wenn ich dem dem rover da oben 8:47 jetzt die tabelle übersetzte dass lr hinauf schicke das ist diese coating tabelle das l m mit 11 10 und 0 zu kopieren ist 8:57 kann er das trotzdem herausfinden und auch aufgrund von dem von den un und die nachricht ist einfach aufgrund der häufig zeichen optimiert die länge sitzt 9:10 kürzer weil ich einfach die zeichen die häufig vorkommen einfach mit einem kurzen code versehen habe das ist einmal der ganze trinkern im ganzen hafen ein 9:22 algorithmus ist jetzt ein algorithmus der genau so eine optimale coding tabelle erstellt das ist eigentlich wenn man es genau nimmt alles wichtig ist 9:36 beim normalen hafen ein algorithmus brauche ich die nachricht dann schaue ich welche zeichen kommen häufig vor in welche nicht und daraus erstelle ich 9:46 diese coding tabelle und gemeinsam die coding tabelle plus die nachricht die plus der pid stream ist praktisch dann der code für die richtige nachricht hier 9:59 ok