Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).
Grundlagen der Informatik und Computernetze (VL 09): Codierung, Kompression, Lempel-Ziv-Welch (LZW)
Das Wichtigste aus dem Video
Tipp auf eine Zeit – das Video springt genau dorthin.
Transkriptautomatisch erstellt · 540 Zeilen
- ja schönen guten Morgen Grüße diese neunten Vorlesung grundlag der Informatik und Computernetze auch schön heute wieder dass viele von ihnen
- gekommen sind trotz des ja furchtbaren Wetters im Moment einige wohl nass geworden mich eingeschlossen ja heute geht's um
- Codierung wir haben darüber schon mal gesprochen im einen oder anderen Kontext also auch der ASK Code ist natürlich ein coache und damit auch eine Codierung und
- dann etwas mehr im Schwerpunkt dann auch um Daten Kompression das ist also eine besondere Form der Codierung da geht's dann darum Speicherplatz zu sparen das
- soll uns heute beschäftigen noch dazu habe ich Folien vorbereitet also wie gesagt der Begriff Codierung ist un schon begegnet
- das ist ja auch ein Alltagsbegriff dort allerdings oft in dem sehr starken Kontext geheime Codierung ne erwähnte ich ja auch schon bei uns ist das nicht
- geheim wir haben natürlich auch eine Disziplin bei der it Sicherheit so auch dort geschnitten mit der Mathematik dann wäre das Kryptographie da geht's
- dann tatsächlich darum etwas wirklich geheimzuhalten zu schützen also Sicherheitsziele wie Vertraulichkeit oder Integrität von Daten zu schützen
- darum geht's aber heute nicht da haben sie eine eigene Vorlesung zu dann in ihrem vierten Semester also vierten gelesenen Semester heute geht's also
- wirklich um Codes und da sehen sie auch eine Definition letztlich ist das nur eine Funktion Wörter werden abgebildet auf
- Wörter und wir haben halt Alphabete auf beiden Seiten und dann wird eben ein Wort über dem einem Alphabet auf ein Wort über dem
- anderen Alphabet abgebildet und bei aski ist es ja auch irgendwie offenkundig ne da habe ich so ein Zeichen wie das große a ne und das bilde ich dann ab auf die
- Zahl 65 oder auf den 7 bit String der dann dem Wert 65 entspricht sie wissen ask ist z.B ein 7 bit Code wir verwenden oft als 8 Bit Code das liegt aber eher
- daran dass das acht eine runde Zahl ist ähnlich wie Unicode da hat wir sogar verschiedene kennengelernt so also Möglichkeiten die unico Zeichen dann
- noch abzubilden UTF8 UTF 16 bis UTF 32 und das sind mögliche Codes die natürlich von höchster Praxis relevan sind aber es gibt noch weitere aber
- zunächst mal das ist eben die allgemeine Definition also wie gesagt hat nichts mit lustigen Geheimagenten zu tun wieder auf der rechten Seite abgebildet sind
- sehr oft haben wir es eben damit zu tun dass wir irgendwas auf Bits und bites abbilden ja klar ne damit es maschinenlesbar wird damit wir es in
- Algorithmen einfüttern können allgemein spricht man dann von binärer Codierung das kommt Hal so häufig vor dass man da einfach ein einzelnen Begriffe gewählt
- hat ansonsten können Sie aber auch beliebig über irgendwelche Alphabete einen Code definieren und das ist je nach Kontext dann auch sehr sinnvoll und
- no nicht notwendigerweise binäre Kodierung ja Kompression wird jetzt wie gesagt unsere Hauptanwendung für heute
- sein wer kann eigentlich sagen so in einem Satz ne so wie der partywissen Informatik was ist eigentlich Datenkompression was passiert
- da ja also Optimierung der Speicherung des Speicherplatz ist ich fass das mal so
- zusammen weil es auch nicht jeder hört was wollten sie sagen ich h gesagt dass man unnötige Daten die man anderer Stelle schon herauslesen kann weglen D
- Speich Vering unnötige Daten weglassen aber auch mit demselben Ziel Speicherplatz verringern genau kommt das denn vor dass man unnötige Daten hat auf
- dem Computer ich kann Videos erklären da wird Kompression so eingesetzt dass wenn einer Stelle ein Pixel sich für die
- nächsten 2 Minuten nicht verändert wird einfach nur der letzte bekannte Wert des Pixels genommen und die ganze Zeit angezeigt wurch dann weil unkfierten
- Video für jeden Pixel dieser farbwerticher werden würde der allerdings wenn man Pass anwendet nicht okay also ich versuch no mal ganz kurz
- zusammenzufassen Beispiel bei Video ein Pixel ändert sich ja nicht unbedingt ne und es gibt ein Pixel das WE ich blauer Himmel ne dann bleibt das erstmal blau
- vielleicht für 30 Seen und dann wäre es sozusagen überflüssig immer wieder zu sagen im nächsten Frame da ist ein blaues Pixel im nächsten Frame da ist
- ein blaues Pixel das kann man vermutlich geschickter machen genau das wären also so Redundanzen die man ausnutzt und dann kann man
- komprimieren der Begriff ist aber gar nicht so ohne ne also wenn sie jetzt vorstellen haben irgendwie eine große Datei ich deute das jetzt n mal an durch
- so ein Rechteck ne und dann haben Sie jetzt vielleicht ein Programm also sie kennen ja wahrscheinlich sowas wie wie gzip sezip pkzip oder wie die alle
- heißen ist ja oft auch eine Funktion als Teil eines Datei Explorers oder so will auch keine Werbung machen gibt genug kostenlose gute Tools ich schreib
- einfach mal siip ne das ist wie im Englischen da ist auch dieser Reißverschluss man man packt irgendwas zusammen es wird dadurch enger oder so
- das scheint hier irgendwie die wortweall mal beeinflusst zu haben ich habe aber nie Amerikaner gefragt oder ein Engländer und dann wir die Datei
- irgendwie kleiner ich deute das mal an durch ein klein es Rechteck ne das ist deswegen so ein bisschen schwierig
- weil so einfach geht's ja gar nicht ne also ich meine wir werden einfach Algorithmen kennenlernen aber ich kann das ja nicht einfach sagen ich habe ein
- Programm das macht aus einer großen Datei eine kleine Datei jedenfalls wenn es das immer täte ne dann könnte ich das ja auch fortsetzen ne kann ich das ja
- noch mal zippen oder so und dann hätte ich dann irgendwie noch kleinere Datei und selbst wenn ich sage okay das geht nur einmal ist auch dieser Vorgang schon
- diskutabel ne weil wenn ich jetzt alle größeren Dateien zu kleineren Dateien machen kann dann merken sie das ist so ein
- mathematischer Widerspruch weil es gibt ja viel mehr bitstrings einer großen Länge ne als bitstrings einer kleineren Länge oder auch beitfolgen wie auch
- immer aber das ist ja irgendwie offenkundig ich kann ja auch nicht alle zehnstelligen Zahlen auf dreistellige Zahlen abbilden ähm ich meine kann ich
- schon aber dann ist es nicht injektiv ne also dann kann ich das nicht rückgängig machen und wir erwarten ja dass wir das wieder rückgängig machen können also
- wieder die ganze Datei erhalten ja wer kann denn das Auflösen ne also zum einen kann ich das mehrfach machen oder zum anderen warum ist es dann in der Praxis
- doch kein Widerspruch warum kann ich überhaupt aus großen Dateien kleinere machen ohne sozusagen die Mathematik zu verletzen dass ich dann ja viel zu viele
- Dateien habe die ich auch viel zu wenige abbilde was ist denn sozusagen die Idee was ist der Trick warum das praktisch nicht weiter schwierig ist ne man guckt
- erstmal theoretisch drauf und muss überlegen woran es denn liegt kann das jemand trauen Sie sich ruhig erwte jetzt hier bestimmt keine
- perfekte Antwort ja vi man dietionsverfen wieder rückgängig anwenden kann also wenn man den Weg der Kompression KT kann man wieder rüwär
- gehen genau also man muss die das Kompressionsverfahren grundsätzlich in beide Richtungen durchführen können ja aber wie können sie denn dann
- die diesen scheinbaren Widerspruch auflösen dass aber aus einer großen Datei nicht immer eine kleinere werden kann ne
- ja es gibt mehr Zeichen der kleineren ah das wir tatsächlich denkbar also wenn wir jetzt hier z.B sagen wir mal also ich ma jetzt mal ganz einfaches Beispiel
- wir hätten jetzt hier was ich beides wäre Unicode hätten wir nur A und B drin und in der kleineren Datei würden wir viel mehr Zeichen
- verwenden genau das das würde gehen also man kann sicherlich große Dateien die nur aus as und Ben bestehen aus a und BS bestehen auf jeweils kleinere übersetzen
- die dann den Zeichenvorrat ausnutzen ja allerdings ist das nürlich eine also das Beispiel wäre soweit okay aber können wir das allgemein für Dateien so sagen
- dass die potentialauweis weil sie den zeichenverrat nicht gut ausnutzen das äh mag so sein ne also
- sicherlich das war ein Teilaspekt ja ich frag mal umgekehrt vielleicht kommen wir dann der Lösung näher gibt's denn Dateien die man nicht oder nicht
- gut komprimieren kann einige nicken jetzt genau Beispiele ja wenn bei der Videodatei bleiben
- wes die kann man nicht gut kompromieren meinen sie ja ich also sein Beispiel war eine Videodatei wo Jes Frame andere Information hat aber
- jetzt noti mal gut komprimierbar das Wort li wir jetzt nicht ganz so leicht von der Hand ne und
- sozusagen schlecht komprimierbar also zunächst mal wir festgestellt also Videodaten eher gut also Ausnahmen gibt vielleicht
- immer also Videodaten und ihr Beispiel Frame wo sich alles ändert ähm kann man das irgendwie so beschreiben in einem Adjektiv oder vielleicht finden Sie
- andere Daten mit demselben Effekt ne im Video ist es tatsächlich jetzt sehr schwierig den Fall so zu beschreiben jetzt so ganz ohne
- Vorkenntnisse aber wir können erstmal allgemein sammeln also allgemein sind Videodaten gut komprimierbar Ausnahmen kann man sich vorstellen was ist denn
- allgemein auch noch gut oder nicht so gut ja prrm mhm also mein sie jetzt Maschinensprache oder Quellcode
- oder ich WE bei qucode aber ich vorstellen also Quellcode ist tatsächlich komprimierbar in der aller
- Regel das ist würde ich jetzt nicht würde ich jetzt sehr ungern da unten reinschreiben D wäre schon besonderer Quellcode also
- jetzt nicht so stark wie jetzt andere Beispiele die vielleicht haben sehr würde ich nicht selber die die Beispiele sie noch ein bisschen brainstormen
- lassen Maschinensprache da schon eher aber das das ist jetzt so ein bisschen speziell da ich will nicht zu sehr in so eine nebendiskussion aber da sind sie
- schon näher dran also Quellkode ist im Allgemeinen auch größer als die Maschinensprache wenn das Z empler wä wäre das ja auch wie so ein Packer also
- wie also Packer ist dasselbe wie so ein sipper oder eben so so ein Programm was komprimiert ne dann kann ich es auch wieder disassemblieren hätte wieder den
- Quellcode aber das ist jetzt auch eine sehr spezielle Sache mit der Maschinensprache deswegen den den Exkurs machen mal lieber zu was ist denn noch
- schlecht komprimierbar vielleicht finden wir noch mehr Beispiele die jetzt für viele leicht verständlich sind ja schon
- vorenform genau dieses vorkomprimierte vorkom das ist ja auch mal ein Wort vorkomprimierte Dateien schreibe ich jetzt
- mal genau das heißt das was ich hier so geschrieben hat das geht tatsächlich in der Praxis nicht also ich habe immer solche
- Aussagen jetzt das ist so sag diese 95% aufwärtsaussagen es gibt immer Ausnahmen oder vielleicht geht noch ein bisschen komprimierbar aber erstmal
- geht's nur einmal richtig und danach praktisch nicht mehr noch ganz ganz gering vielleicht muss ich Verfahren noch mal ändern dann kann man vielleicht
- noch ein paar Prozente rausholen aber generell geht's nur einmal also das merken wir schon mal genau vorkomprimierte Daten sind
- schlecht komprimierbar kann das jemand abstrahieren welche Eigenschaft haben den vorkomprimiert od allgemein komprimierte Daten die jetzt sich
- negativ auswirken auf die Komprimierbarkeit ja keine Redundanzen war oben auch eine Meldung son sammel ich das mal Nein oder
- hier noch mal ja gerade gemint hat z.B die hintergrunddateien also wenn ler bei ist wo einfach nur Weier scen ist würde der
- Weg mhm also sag mal Redundanzen sind gut das kann man dann oben aufführen also gut im Sinne von komprimierbar
- Redundanzen die sind oft schlecht weil sie Speicherplatz verschwenden was sie auch andeutet ich habe manchmal sowas wie Dateien die irgendwie Platz
- verschwenden weil sie solche Redundanzen eben haben als Überschrift besser kennzeichnen und das andere also wenig Redundanz gut jetzt wenn ich
- das jetzt hier einfach negiere ist natürlich einfach aber versuch noch so ein bisschen was rauszukitzeln ne das gibt's auch bei Filmdaten das
- gibt's auch bei Audio haben noch gar nicht genannt aber das gilt dasselbe Videodaten Audio aber welche Eigenschaft von dem Audio da ist der
- Begriff auch glaube ich noch geläufiger bei Videos kommt aber auch vor oder auch bei anderen Dateien da gibt's wieder einen anderen Begriff der so ähnlich ist
- macht das denn schlecht macht es wenig redundant ja genau das sind die beiden also Rauschen und Zufall also bei Audio Video
- sprechen wir oft von Rauschen es gibt auch eine allgemeine signaltheorie und und Informationstheorie ich will da aber
- nicht zu tief rein ich will nur sagen falls da jemand Vorkenntnisse hat viicht auch jemand schon mal Nachrichtentechnik studiert dann denkt er sich gerade oh da
- gibt's aber noch viel mehr das stimmt aber genau wenn etwas rauscht dann dann flackern ja auch diese Pixel haben wir das gerade gerade nicht ne dass dass der
- Himmel an einer Stelle immer denelben Blauton hat ne dann bewegt sich das sozusagen im Farbraum zufällig hin und her das war sehr vereinfacht
- dargestelltes Rauschen allgemein eben Zufall oder auch pseude zufällige Daten genau also das heißt wenn die wenn die bit da so wild zufällig ausgewählt
- erscheinen können Sie die Datei regelmäßig nicht komprimieren sie werden dann den Algorithmus auch nicht finden der
- seinerseits herausfindet mit welchem Algorithmus diese Daten erzeugt worden sind wenn dann geht das natürlich W wir z die Nachkommstellen von PI nehmen ne
- die sind ja mit äußerem Blick Zufallszahlen aber es sind natürlich keine Zufallszahlen weil es ist ja immer die nächste Nachkommastelle ne das heißt
- wenn ein ein ein so ein Packprogramm das das merken würde okay das die nachkommstelle von P dann kann man das irgendwie beschreiben ne dann kann man
- da megabyteweise zusammenfassen ganz kurz aber das ist natürlich fast nie der Fall ne dass man so so ein Muster so erkennt gerade wenn es so zufällig
- aussieht und also all das was zufällig ste zufällig ist was rauscht kann man nicht komprimieren und dann merken sie damit wie die scheinbare Widerspruch
- auch aufgelöst die allermeisten Dateien haben natürlich keine Redundanz ne also wenn ich jetzt zufällig eine Datei quasi ziehech ein Münzwurf oder so dann ist
- die ja genau das ne äh dann enthält die zufällige Daten und dann wird sich das Packprogramm der sipper das Komprimierungsprogramm dann eben die
- zehne ausweißen das erstmal nur so als als Grundidee dass wir wissen worüber wir sprechen also wir können komprimieren aber wir brauchen dazu
- Voraussetzungen die Dateien mit dem man aber in der Realität oft zu tun hat haben offenbal diese Voraussetzungen sonst würden wir das nicht dauernd
- anwenden übrigens nicht nur bei der Speicherung auch bei der Datenübertragung ist das natürlich genauso wichtig aber ich denke das ist
- ih auch sofort geläufig okay also hier ist das noch mal als Definition ne wir können komprimieren das nennt man Datenkompression also letztlich ist das
- ein Algorithmus ein digitales Verfahren um Speicherplatz zu reduzieren ne oder wenn wir Übertragung denken also Daten in transit dann geht es darum die Zeit
- zu verkürzen und wie sie schon sagt das steht hier auf der Folie so Videodaten und allgemein audioovisuelle Daten sind
- gut komprimierbar ne weil da offenbar sich dann doch einiges so wiederholt wenn man das so pixelweise betrachtet ne und solche redondanzen kann man dann
- erkennen da gibt's natürlich Algorithmen und dann sind die nicht so extrem riesengroß also das das kann ja einmal ganz schnell die ganze Festplatte füllen
- wenn wir so mit höchster Auflösung stundenlang da Pixel übertragen da gibt es also harte Anforderungen oft dass man diese Datenmenge reduzieren
- muss die neue Datei die herauskommt muss aber eine prentation der Daten sein ne das heißt wie sie schon sagten es muss auch in die andere Richtung wieder gehen
- ne also mathematisch sagen wir das ist dann injektiv also es muss auch ein Ansip geben z.B und weil sonst wäre das ja auch Quatsch ne also wenn ich die
- nicht zurückholen könnte habe ich ja nicht viel gewonnen die Idee ist ja dass ich speicherblatt spare aber nicht dass ich Datein verliere ne da wir inzwischen
- gerade im Bereich aUDIO VIDEO aber manchmal kom machen wurden noch diese Begriffe eingeführt also ganz allgemein ist Komprimierung die sogenannte
- verlustfreie Komprimierung ne das heißt beim entkomprimieren beim auspacken muss ich Bit für Bit Bit für bit exakt die Dateien wiederkriegen auch kein
- Kompromiss also stellen sich vor dass wir Maschinensprache und ab und zu fehlt ein Bit oder so das Programm wäre gar nicht mehr ausführbar wde quasi sofort
- Abstürzen ne also wir erwarten dass das hier wirklich fehlerfrei ist dass nicht ein einziges Bit auch nur giipt aber das können natürlich erfahren im Bereich
- aUDIO VIDEO da muss man nicht ganz so streng sein weil es ist ja nicht Maschinensprache die wir ausführen sondern wir gucken ja nur oder wir hören
- ja nur und dann kann man nich dadurch Daten sparen dass wir sagen das ist für den Menschen gut genug oder es ist sogar für den Menschen ununterscheidbar vom
- Original das ist so das Ziel das hat man z bei bei MP3 zumindestens angestrebt kann man lange diskutieren ob das erzielt wurde einige schwören ja da
- drauf die hören immer noch Unterschiede unter Laborbedingungen sind es dann immer sehr viel weniger kann ich schon mal sagen aber das ist eine Diskussion
- für sich ne also Audio Freaks haben da sicherlich ihre Meinung die benutzen auch goldene Kabel um ippakete zu übertragen oder so die kann ich auch
- nicht alle ernst nehmen in der Community aber generell kann man natürlich dort tatsächlich auch Verluste hinnehmen wenn es eben wie gesagt gut genug ist
- oder vielleicht die Auflösung verringern wenn jetzt nur ein Videotelefonat ist brauche ich vielleicht auch nicht so viel Klarheit wie es jetzt wäre wenn ich
- ein Hollywood Film streame für den ich vielleicht auchch gerade bezahlt habe ne also das wären dann erlaubte Verluste oder allgemein eben das wäre eine
- verlustfreie kom eine nicht verlustfreie als eine verlustbehaftete Komprimierung entschuldigung aber jetzt für uns bis auf weiteres wir haben noch das
- Kapitel Computergrafik später wo wir da kurz reingucken wollen wir jetzt alles hier verlustfrei haben
- bei Grafiken kann man auch noch mal überlegen je nachdem wie man die vektoriell darstellt oder rendert ist es da auch möglich
- ein ein Verlust hinzunehmen ohne dass der Mensch dadurch ein Nachteil hat genau und diese Packprogramme habe ich hier genannt also die heißen alle
- irgendwie so ne siip oder RA TGZ so Kommandozeilen Umfeld hat glaube ich jeder schon mal benutzt meistens reicht das so die
- rechte Maustaste oder so wenn Sie eine haben und dann gibt's meistens so ein Menüpunkt dass ich irgendwas m Archiv hinzufüge
- genau der Archivierung fällt das auch oft wobei es gefährlich ist die Begriffe zu verwechseln deswegen sagen wir eindeutig
- Datenkompression ja und die einfachste Methode ist eben die Wiederholung zu erkennen ne wie sie schon sagten ein Pixel wiederholt sich immer wieder Bild
- für Bild ne das passiert nicht nur Bild für Bild sonder auch innerhalb eines Bildes gerade wenn z.B maschinell generierte Bilder sind wiederholt sich
- natürlich dauernd ein Pixel ne also das wird schon fast langweilig wenn man das guckt sich anschaut auf Dateiebene so Beit für Beit hat man Eindruck da
- passiert ganz lange nichts können Sie kilobyweise immer wieder dieselbe Zahl lesen oder so und das motiviert eben so das einfachste
- Komprimierungsverfahren was man sich so ausdenken kann das was wir auch ansonsten alss als Mensch verwenden selbst wenn wir jetzt nicht
- programmieren selbst wenn wir nicht mit digitalen Systemen arbeiten kommt das da ja mal vor ne dass wir sagen ich habe hier eine ein mit 100
- Null z.B ne das ist dieses Beispiel auch auf der Folie ne also 2 hoch 100 binär ne das ist n ein mit 100 Null oder 10 hoch 100 dezimal ist eine ein mit 100
- Null und das kanönnte ich ausschreiben ich sage ah das Ergebnis ist 1 und so weiter könnte die 100 Nullen aufzählen ne das dauert aber nicht nur
- länger sonst wde auch mehr Speicherplatz oder ne wenn ich es aufschreibe mehr mehr Papier verbrauchen als wenn ich es einfach
- beschreibe wä es möglich dass sie sich nicht weiter hier drin unterhalten ich habe ihr Gespräche schon längere im Ohr ne also wir ist noch ganz
- nah an der Tür sonst können sie draußen die Besprechung machen genau also das wä eine Eins mit 10 Null und da ist die textuelle Beschreibung schon mal kürzer
- ne ohne da jetzt ein großen Algorithmus draus zuachchen als das Ausschreiben dieser viehel null okay also das wäre die
- lauflngencodierung das kann ich als Algorithmus natürlich auch fassen dass ich sage Nut folgen was ist ich 10 Bytes mit dem Wert 0 danach 5 byes mit dem
- Wert 255 oder so ich muss diese Eigenschaft das will ich natürich nicht immer so im deutschen oder englischen Satz schreiben diese muss ich eben
- möglichst geschickt oder kurz darstellen ne und wenn ich das mal festgelegt habe dann besteht eine Datei nicht mehr aus derer Folge von bites ne sondern nach
- der Komprimierung aus einer Folge von Lauflängen und hier ist es mal ganz konkret ne also sie sehen wenn die Farben bei ihn halbwegs auch rüberkommen
- beim B immer so eine Sache im Schwarz die also in schwarzer Farbe die unkomprimierten Daten und die Semantik ist jetzt völlig egal das kann jetzt
- Teil einer Grafik sein eines Audios oder vielleicht auch menschlicher Text oder so also menschenlesbarer Text F0 F0 F0 f1080808 was wir merken hier gibt offen
- Wiederholungen ne und die lauflängencodierung funktioniert eben so dass wir einfach sagen dann machen wir mal paarweise eine Beschreibung dann
- schreiben wir 03 F0 01 F1 ich betone das jetzt so stark damit Sie es direkt erkennen ne 06 08 ne 01 05 also da ist immer die Anzahl dazu gesagt also statt
- dreimal F0 zu schreiben dass es jetzt hexadezimal ist die bites können sie ignorieren das macht es aber einfach schöner beim auf schreiben äh da hat man
- immer zweistellige Werte deswegen nimt man das da gerne also statt F0 F0 F0 schreibe ich 03 F0 also dreimal das bite F0 und statt diese vielen mal 08 ich
- glaub sechs Stück sind's genau sechs Stück schreibe ich eben 06 08 ne dann habe ich auch ordentlich gespart ne also ich aus 6 x 08 also 6
- Bytes habe ich 2wei bites gemacht also zwei Drittel gespart das ist schon viel wir merken aber auchfahren hat hat hier einen Nachteil ähm manche bites kommen
- dann eben doch nicht als Lauflänge vor oder eben als Länge 1 nur vor wie die F1 hier im Beispiel und da muss ich schreiben 01 F1 das heißt in dem Fall
- verdoppelt sich sogar die äh die Anzahl von bals zur Speicherung das Verfahren äh hängt also in seiner Wirksamkeit davon ab dass das nicht allzu häufig
- vorkommt dass bit auch einzeln in dieser Folge sind also eben keine Folge sind sondern so also Einzelfolgen darstellen ne und ähm das sehen wir auch im
- Ergebnis also ich habe da was gespart ne aber zwischendurch habe ich dann auch ein bisschen was verschwendet es ist offenbar ein
- Verfahren das jetzt bei vielen Daten auch nicht gut funktionieren würde selbst wenn es Redundanzen gäbe sie hat noch Beispiele genannt jetzt wie z.B
- Quellcode oder so da kommt natürlich selten vor dass jetzt ein Schlüsselwort z.B jetzt vi a hintereinander hat oder so ne also kann mal vielleicht sowas wie
- space und Tab oder so das das könnte noch was sein was wirklich häufig htereinander vorkommt der Rest aber eher nicht so das heißt diese Redundanzen
- eines Java quellcods oder so kriegt man damit wahrscheinlich nicht so gut hin aber es ist auch wie gesagt das einfachste Verfahren also das was man
- sofort versteht das können Sie direkt runter programmieren ne mit einem Java prramm diese bites lesen und dann komprimiert ausgeben also ja viel
- einfacher kann ich mir nicht vorstellen jedenfalls ne und jetzt kann man anfangen zu optimieren wir machen das jetzt nicht beliebig weit aber dass man
- man so erkennt was sind denn jetzt Möglichkeiten ein richtiges ein komplexeres Komprimierungsverfahren hier zu konstruieren z.B diese einzelnen
- bites wenn die mich stören kann ich auch sagen nee dann mache ich das auch nicht so dass ich im schreibe jetzt habe ich einmal eine F1 ich ma das umgekehrt wenn
- ein Bit einfach so da steht dann ist es das bald ne und wenn es eine Lauflänge gibt von viel bit das ist ja sousag die Hoffnung dabei vielleicht erwische ich
- mal 100 oder sogar Taus mal dasselbe bit vielleicht am Anfang am Ende ein der Datei oder eine Tabelle oder so wo die Werte plötzlich wegfallen ne dann habe
- ich so markarbeit und das sagt eben achtung jetzt kommt eine Folge dadurch werden die Folgen natürlich länger weil die immer mit einer markarbeit
- eingeleitet werden müssen aber auf der Habenseite die einzelnen bites bleiben einzelne bites und dann wä das die Hoffnung dass
- das typische Daten der Realität eben ein Vorteil bringt beim Quellcode oder so wäre das sicherlich ein großer Vorteil dann würde man wirklich nur diese wenn
- das eben spaces z.B sind die da großer Folge auftreten würde man nur auf diese quasi jagen und die dann entsprechend verkürzen also hier daselbe Beispiel mit
- markarbeit da steht D FF 03 F0 dieses FF ist eben das die die Markierung achtung es kommt eine Folge und dann eine Folge von dal
- F0 dann kommt F1 f für sich ne also F1 ist F1 da wird nicht komprimiert aber es wird auch nicht größer aufgrund irgendeines Overheads ne dann kommt
- wieder FF 0608 ne also eine Markierung achtung jetzt kommen se mal se mal kommt das Bit mit dem Wert 8 also hexadezimal 08 was aber auch sonst das war die
- Nummer 8 wäre ne und so weiter ne zum Schluss sehen sie noch mal FF 0300 also am Schluss sind 30 beits ne das wäre also in einigen Fällen
- besser in anderen vielleicht nicht hier konkret in dem Beispiel war es jetzt wieder sogar Beit länger es hat sich also nicht so ganz gelohnt ne es lohnt
- sich eben vor allem wenn da mal eine längere Folge kommt oder so ne okay aber ne daran könnte man eben drehen man könnte das weit identifizieren was jetzt
- hier Gründe sein könnten Redundanzen zu erkennen vielleicht sag do jemand na vielleicht sollte ich eher nach deutschen Worten oder nach nach
- doppelbeit suchen weil die sich eher wiederholen ne das kann auch sein z.B UTF wäre ne dann wä es vielleicht besser das jeweils für zwei bites zu machen ne
- aber das wären eben solche Gedanken da müsste ich mich mit den Daten weiter auseinandersetzen und so ein bisschen feilen an diesem Verfahren aber es ist
- eben eine ansonsten brauchbare Methode leicht zu erlernen und auch offenbar hier auch zu dekodieren also ich kann auch entkomprimieren ohne dass
- hier irgendwas verlustig geht weil man ja versteht welche Zeichenfolge hier beabsichtigt war hier das ist mal ein Beispiel dafür wann lohnt sich überhaupt
- eine lauflängencodierung für Quellcode haben wir schon gesagt eher nicht für Maschinensprache haben sie jetzt auch eine gewisse Vorstellung eher auch nicht
- ne also ich obcode Parameter ist doch selten dass ich das alles mal HT Mal wiederholt oder so ne aber es gibt ja Grafiken wo tatsächlich sehr wenig
- passiert ne ich sagte ja vorhin schon maschinell erstellte Grafiken also weniger das verrauschte Foto vom Sonnenuntergang was Sie vielleicht im
- Urlaub machen oder so ne aber wir haben ja auch in der gerade jetzt in der digitalen Welt sehr viele so Icons Piktogramme also super simple Grafiken
- die aber auch sehr wichtig sind ne also um z.B was ich Buttons zu beschriften oder eine Funktion eben die ich mit Finger anchippe zu erkennen also oft
- haben sie so eine Komplexität wie dieses Beispiel al ich ein senkrechter Strich heißt das irgendwas ne also das ist jetzt völlig abstrakter Strich aber sie
- wissen es gibt solche Symbole Z ein und ausschalten manchmal nur so ein Strich oder so halbe eine halbe Rundung noch drüber ne oder auch so verkehrschilder
- z.B ne also wenn ich so ein Stoppschild oder so als Grafik dann im Computer entwerfen und das pixelweise betrachten D sehen Sie okay da kommen jetzt ganz
- viele rote Pixel ne und dann wieder ganz viele äh weiße ne man Wort Stopp ist doch weiß oder kann überlegen man sieht jeden Tag aber äh sich ja gar nicht
- sicher wenn man es gerade nicht vor Augen hat ne aber jedenfalls da gibt's nicht so viele Farben und es gibt sehr große Flächen buchstäblich groß damit
- man es auch aus der Entfernung erkennt ne und solche Grafiken ne die kann ich tatsächlich sehr gut komprimieren dazu muss ich erstmal aber wissen eine Grafik
- besteht aus Pixeln den Begriff kläme noch mal etwas genauer aber wie gesagt wir haben noch mal so ein kurzes Kapitel Computergrafik
- das stelle ich jetzt also mal zurück jeder von ihnen weiß aber ungefähr was ein Pixel ist stellen sich einfach ein kleines Quadrat vor aus dem die Grafiken
- aufgebaut sind bis auf weiteres reicht das ne und dann wird das wird so eine Grafik aufgezählt und da hat man mal festgelegt das macht man so
- ähnlich wie beim Schreiben also von links nach rechts und von oben nach unten so zeilenweise ne und jetzt kann ich ja mal überlegen wie könn ich so
- eine Grafik codieren wie diesen schwarzen senkrechten Strich auf gelben Grund ist jetzt einfach mal festgelegt das ist ein Piktogramm ne so ein kleines
- Icon 128 x 128 Pixel also wirklich klein fast alles gelbe Pixel und eben der Strich mit schwarz Z Pixeln ne und wir kümmern uns jetzt nicht weiter um
- das Grafikformat wir müssen aber jetzt einfach fürs fürs codieren gelb ist A0 und schwarz ist 00 jedes Pixel soll jetzt hier genau ein Bit haben ne sonst
- kann man das Verfahren aber natürlich auch abstrahieren und auch auf 16 32 B natürlich übertragen und noch diese Pixel zählen aber der Kern ist derselbe
- wir machen das jetzt mit bites da hab ist jetzt auch gerade so schön eingeführt okay es gibt bites mit A0 und es gibt bites mit null ull ne also mit
- gelb und mit schwarz und wenn ich oben links anfange ja habe ich erstmal die erste Zeile 128 gelbe Pixel und dann kommen noch mal 128 gelbe
- Pixel ne eine Festlegung die wir treffen können bei der lauflengcodierung da 00 als lauflenge Al jetzt hier ohne markarbeit ne 00 als
- Lauflänge macht keinen Sinn als zu sagen jetzt kommt Null mal irgendein Wert oder so also sinnvoll ist ja nur wenn er einmal zweimal dreimal oder so vorkommt
- also nimmt man für 00 auf das Maximum was man sonst nicht erreichen kann also eins mehr als das sonstige maximum meine ich ne dann sagt man bei Beit das ist
- steht dann für 256 das ist auch gut dann habe ich so eine schöne runde Zahl weil es ist ja oft eine zweier Potenz okay also da
- sehen sie 00 A0 heißt also 256 gelbe Pixel und da dieses Quadrat jetzt auch eine Kantenlänge von 128 hat heißt das genau zwei Zeilen also mit
- zwei bites kann ich zwei Zeilen gelb machen habe ich hier gerade kein Gelb aber sie können sich das vorstellen einen senkrechten Strich ne
- und jetzt habe ich hier zwei Zeilen das jetzt hier mal ganz einfache Skizze zwei Zeilen
- entspricht 256 Pixel und das ist unkomprimiert hier auch 256
- Bytes bei diesem Grafikformat ne es gibt auch Grafikformate B 4 Bit für Pixel oder so aber wie gesagt das lern wir jetzt heute nicht
- kennen okay das heißt ne mit diesem 00 was F0 diese Farbe Gelb ne a 00 A0 kann ich also zwei zeahlen direkt codieren weil da nichts passiert eine wunderbare
- Lauflänge also solche Grafiken wie gesagt da kombinierbar mit laufläen und das kann ich noch mal machen und noch mal ich muss im Prinzip nur
- ausrechnen wie groß denn hier oben und unten der Abstand ist jetzt haben wir gesagt 128 das ganze ist zentriert also habe ich oben und unten 14
- Pixel Deut ich jetzt hier mal nur an diese diese Messung also 14 Pixel die mir oben und unten quasi fehlen die nicht schwarz sind sondern die auch gelb
- sind und dann ist der Rest so ein bisschen Rechnerei ne also 00 A00 a habe ich vi noch mal habe ich 6 und so weiter und insgesamt brauche ich 14 gelbe
- Zeilen ne weil oben und unten 14 wie schon vorgerechnet ne und dann habe ich bei der 15 Zeile ne also ne also wie gesagt von wenn ich das
- von 0 bis 13 mache oder so jetzt hier nichts verwechseln aber ist auf jeden Fall eine gerade Anzahl oben oder unten ne nicht dass sie hier so ein off by one
- problem haben jedenfalls in der dann folgenden 15 Zeile ne da geht ja auch noch mit Gelb los bis ich die beiden schwarzen Pixel erwische ne das heißt
- auch noch ein bisschen gelb ne das muss ich einmal ausrechnen und dann komme ich eben auf 63 gelbe Pixel und das entspricht dann offenbar wo steht's 3F
- A0 ne also 3F ist offenbar die 63 ja kommt do hin 40 64 genau ne also 3f0 noch mal für die 63 gelben Pixel dann kommt das eigentliche Objekt ne das hat
- die breite 2 weil das Beispiel ist einfach mal so festlegt breite 2 Pixel da sehen sie 0200 ne und das wiederholt sich ne jetzt jeweils über ein Rand ne
- also 63 rechts und dann Zeilenwechsel wieder 63 links ne also macht dann 126 oder 7e und bis dieser ganze schwarze
- Streifen voll ist ne also das muss ich dann sozusagen 100 mal wiederholen immer dieser Wechsel von schwarz auf gelb und unten ist dasselbe wie oben habe ich
- wieder 14 Zeilen gelbe Pixel und dieser Rest W das jetzt so ein bisschen zu schnell ging aber sagen wir mal dass man das schnell ausrechnen kann vielleicht
- mal sich Taschenrechner ansonsten so g das ist ihn unmittelbar klar wenn Sie wissen okay eine Grafik klar von oben links nach unten rechts wenn die Pixel
- aufgezählt und D muss ich halt gucken wie oft es zu diesem Wechsel kommt zwischen gelb und schwarz das Aufzählen und dann habe ich meine Lauflängen und
- wenn ich das alles so runterschreibe kommt man dann auf 430 Bytes also waren offenbar 215 Lauflängen am schlechtesten lief das so
- mit den schwarzen Pixel es immer zwei war da kann ich nichtich sparen wenn ich sage zweimal das beid Null h direkt 0000 schreiben können okay aber hat das jetzt
- hier nicht weiter verschlechtert ne aber aufgrund dieser extrem vielen gelben Pixel war die lauflängencodierung hier Gold richtig ich habe also 430 byes
- anstatt 16384 byes ne wenn man das mal so vor Augen sieh wow das ist ja enorm das ist ungefähr ein 32 ne also wenn sagen
- weniger als 512 ne also habe ich jetzt hier so im Kopf 97% etwa eingespart also eine
- wahnsinnskompression bei diese Art von Daten scheint sich das sehr stark zu lohnen ne dasel wenn ein bisschen mehr los ist ne sie haben trotzdem immer
- diese Lauflängen bei allem was so piktogrammartig ist und oft sind das ja noch viel größere also 128 x 128 ja heute schon sehr wenig kann das Handy ja
- fast gar nicht mehr so darstellen dass da noch ihre Fingerspitze drauf passt ne da hat man schnell schon mit größeren Werten zu tun ne okay also offenbar ein
- Beispiel was so gewählt ist dass die lauflängencodierung hier Gold richtig ist es bleibt aber natürlich dann die Frage was mache ich denn mit diesen
- anderen Beispielen ne wie wie Quellcode oder Maschinensprache oder Audio Video sonst wo vielleicht auch mal zwischendurch was
- verrauscht ist oder wo es vielleicht äh Dinge gibt die sich wiederholen aber nicht so als als Lauflänge eben wiederholen ne sondern sich vielleicht
- auch hin und her abwechseln das müssen wir also noch im Kopf behalten andere Idee ne wo kann ich das noch besonders gut machen
- wenn sie so eine Grafik wie oben rechts sehen die z.B monochrom das hat man ja auch das öfteren also dass auch Bilder vielleicht zusammengesetzt sind aus
- monochromen einführbildern oder dass ich wirklich irgendwo eine Art schwarzweiß Oberfläche habe ne vielleicht auch für für bei fondz oder so die werden erstmal
- auch definiert eben als ne schwarze Buchstaben A weißen Grund also quasi man unterscheidet einfach diese beiden Farben man legt auch gar nicht unbedingt
- fest dass das Schwarz oder Weiß ist das passiert dann eher wenn Sie den den Texteditor bzw wordprocessor anmachen und wenn ich sowas habe wie monochrome
- Grafiken ne dann muss ich auch gar nicht mehr sagen achtung jetzt kommen so viel schwarze Pixel jetzt kommen so viel weiße Pixel und so ich kann ja direkt
- sagen hier Moment wenn die schwarzen fertig sind dann kommen natürlich weiße weil andere habe ich ja nicht ne also ich mal bei schwarz-weiß als Beispiel
- und wenn die weißen wieder fertig sind kommen natürlich schwarze ne das heißt diese Information immer jetzt kommen schwarze jetzt kommen weiße jetzt kommen
- schwarze jetzt kommen weiße die muss ich nicht codieren die ergeben sich aus dem Kontext ich muss elich nur sagen was am Anfang ist ne und hier z. kann ich
- anfangen mit weißen Pixeln und dann das durchzählen ist hier so eine Art was ich Pacman Gespenst oder so W ich hier drin noch erkennen die älteren Seen das
- vielleicht auch da drin oder irgendwas anderes D sieht man ich 12 weiße Pixel nächste Zeile noch mal drei also macht dann 15 weiße Pixel sechs schwarze dann
- noch mal fünf weiße acht schwarze und so weiter und das gibt am Ende über die Lauflängen ne so eine Zahlenfolge die da ganz unten rechts steht einfach ne 15
- Komma und so weiter also hier habe ich offenbar eine Möglichkeit sehr viel einzusparen weil es nur zwei mögliche Farbwerte gibt ne und das natürlich gut
- wenn man sowas sieht wenn man das erkennt und dann richtig gut ausnutzt ne um eben ähm ja diese speichermonster auch zu
- vermeiden äh jetzt keine we jetzt keine Anspielung auf das Gespenst ne aber man kann eben durch durch schlechtes Speichern von von monochrom Grafiken
- oder halbwegs monochromfiken sehr viel Speicherplatz verschwenden und das wäre jetzt eben so ein konkretes Beispiel was man auch
- schon seit längerer Zeit so macht solche Grafiken eben sehr sparsam äh zu speichern weil sich einfach zwei Werte immer abwechseln D muss ich das nur
- einmal sagen was ich jetzt hier gleich abwechselt und legt dann eben los dann gibt es so eine zahlenf okay das wä eine weitere Modifikation der
- lauflängencodierung um eine besondere Effizienz für eine bestimmte Art von Grafiken zu erzeugen das versteht wohl jeder denke
- ich ne also vielleicht haben einige Schwierigkeiten die heute zum ersten Mal das Wort Pixel gehört haben aber ich glaub so viele gibt's da nicht jetzt ach
- so genau war schon nächste üersprungen ne ich habe nämlich gar nicht gedrückt wohl offenbar erwischt ja genau was wir bisher auch betrachtet haben waren eben
- Codes auch was wir kennengelernt haben z mit aski sind längenvariable Codes also ne wo jedes Zeichen 7 Bit oder jedes Zeichen ein Bit umfasst z.B oder bei UTF
- 32 jedes Zeichen eine Folge von 4er byites einnimmt das ist natürlich auch sinnvoll in vielen Kontexten aber man möchte sich
- auch mal offen halten dass es nicht so ist ne das nennen wir dann einen Längen varariablencode also dann hat nicht jedes äh Zeichen nachdem ich es in die
- codierungsfunktion gesteckt habe dieselbe Länge sondern die kann sich eben unterscheiden und das bringt aber eine
- Problematik mit sich ne das sehen Sie z.B oben rechts wenn ich sowas habe wie aus A wird 0 aus J wird 1 und aus z wird 100 ne dann merken sie das ist z.B nicht
- eindeutig ne dann würde aus ZZZ 10 wenn ich die Bitz mal so aussprechen darf ne aber auch aus Jazz würde 10 10
- ne oder aus zzja würde 101 also so geht's irgendwie nicht ne also wenn ich das längvariable machen dann muss ich schon noch der Lage sein das auch wieder
- zu dekodieren ne das war bei gleich langen Längen kein Problem ne hier wä es auf einmal Problem weil ich kann der eins nicht ansehen ob das die ein ist
- oder der Beginn der 100 ist ne und daraus ergibt sich hier eben so eine Mehrdeutigkeit ne das Problem ist nich auch sag mal schnell zu erkennen ne z.B
- hat man es auch gelöst für für den Morse code ne also sie wissen es gab eine bedeutende Erfindung im 19 Jahrhundert sozusagen die erste Form der
- systematischen Datenübertragung damit Telegraph ne und da hat man eben diesen Code entwickelt später auch für Funknetze verwendet ne und da hat sich
- der Erfinder z.B auch überlegt dass es ganz sinnvoll ist dass nicht jedes Zeichen gleich lang ist weil einige kommen ja häufiger vor also das
- ist eine sehr wichtige Idee ne die da auch sehr viel gespart hat an Übertragungszeit später im englischen z.B ähnlich wie im Deutschen ist das E
- der häufigste Buchstabe deswegen wird e mit dem Zeichen kurzen gibt's lang und kurz also letztlich wie lange man so diesen Taster drückt und da waren jetzt
- keine Computer beteiligt immer ein Mensch der mit seinem Zeigefinger das gemacht hat und einmal kurz ist sozusagen das das kürzeste denk
- also in Zeiteinheiten das kürzeste überhaupt ne das hat man nürlich fürs e genommen ne oder was auch noch häufig ist ist n das ist d lang kurz O ist
- schon vergleichsweise weniger häufig ne da hat man schon lang Lang Lang genommen ne und ja so nach und nach eben diesen Code
- aufgebaut ne K konnte jetzt nicht jede Entscheidung D nachvollziehen aber er hat offenbar auch Textfragmente für ausgewertet wo dann dieser Code sich als
- gut geeignet dargestellt hat allerdings wenn Sie genau drauf gucken merken Sie hier Moment das ist ja das gleiche wie oben rechts ne aber oben rechts war ja
- offenkundig unsinnig der Mors Code hat bestand also wurde damals sehr stark benutzt im Prinzip wird er bis heute benutzt der Anwendungsbereich ist nur
- weggefallen aufgrund von vielen digitalen Systemen aber ich GL wer Kapitän ist oder so glaube ich muss auch heute noch morsen können das kann man ja
- auch mit mit Scheinwerfern machen also auch mit anderen Übertragungsmöglichkeiten da ist schon noch wichtig ne s wissen dieses SOS ne
- also kurz kurz kurz Lang Lang Lang kurz kurz kurz das kommt eben auch daher und das wäre sogar gut wenn das jeder kennt das können Sie auch im Autoscheinwerfer
- machen wenn sie irgendwo in Not sind ja und deswegen musste man hier dieses Problem lösen weil einmal kurz kann eben ein E sein
- einmal kurz kann auch sein das ist ein i ne also aber es ist ein Unterschied ob es EE oder ein i ist ne wissen Sie wie man das macht da steht schon auf der
- Folie dann kann ich auch direkt verraten ich glaub steht nicht da wie löst man das Problem beim morsen die Folie nicht vor Augen aber
- sonst sagen Sie es direkt ja dur durch Pausen genau also relativ einfacher Gedanke zwischen bei zwischen zwei Buchstaben macht der Mensch eben eine
- kurze Pause übrigens extrem kurz ne also das was man gerade so mit den Muskeln machen kann und später hört ne aber tatsächlich kann Mensch bei regelmäßigen
- musern auch sehr kurze Pausen heraushören will jetzt nicht schätzen mal sagen vi Zehntel Sekunden Pausen oder so aber jeden Fall extrem kurz man
- sonst denken würde wow das klingt so maschinell aber das können auch Menschen aber müsst jetzt mal profiunker fragen was da so aktuelle Werte sind gibt
- wahrscheinlich nicht mehr allzu viele hauptberufliche morser heutzutage dass S die Werte wahrscheinlich auch wieder angewachsen also der Morse code ist eben
- kein binärer Code in irgendeiner Hinsicht es sind drei also kurz lang und Pause sonst könnte man hier nicht dekodieren und die
- Buchstaben wieder gewinnen das muss man wissen und macht aber auch ansonsten keinen Sinn ne sonst hätte man diesen Unsinn wie oben rechts wo man ja
- auf einem Blick sieht das kann ja gar nicht klappen okay also kurz können längenvariabel sein aber dann muss ich stärker drauf achten dass diese
- injektivität eben gewährleistet ist also dass ich sie umkehren kann die Funktion und die Originaldaten auch unverfälscht wieder
- erhalte das kriegen wir aber hin das steh dazu eignen sich Trennzeichen ne also Trennzeichen ist das was die Pause wäre e Morse code ich we nicht ganz
- sicher Wort Pause steht eben nicht da und wenn kein Zeichen der Beginn eines anderen Zeichens ist dann ist offenbar diese injektivität erfüllt ne dann kann
- ich das nicht verwechseln dann weiß ich sofort okay hier ist ein Zeichen das ist fertig das kann ich breifix eines ander Zeichens sein ich kann es also
- rausschreiben deswegen heißt es auch prfriixfreie Codierung also das ist eine positive Eigenschaft die macht uns das Dekodieren viel einfacher und auch in
- dem Fall macht sie es auch eindeutig ne es gibt auch nicht präfixfreie eindeutige Codes aber dann brauche ich eben ja komplexere Strategien beim
- dekodieren genau was wir eben beim Mors Code schon gesehen hatten das E ist häufig deswegen hat das E ein kurzes Codewort ne äh das ist natürlich eine
- allgemeine Eigenschaft die wir bei Dateien oder bei anderen komprimierungsobjekten eben auch ausnutzen möchten ne das nennt man dann
- auch diese entropieeigenschaft ne also manche Dinge sind häufiger oder man sagt die die Wahrscheinlichkeit dass sie auftreten ist geringer ne und andere
- sind eben seltener ne und äh das kann ich eben bei einem nichtlängen fixen Code also bei dem Längen varariablencode ausnutzen dann
- gebe ich natürlich Dinge die häufiger sind kurz Codewörter ne und das muss wohl effizienter sein als wenn ich umgekehrt machen würde also habe ich
- damit schon die Möglichkeit zu komprimieren ne das ist so die Idee wir hatten das bei den Nummernschildern schon gesehen deswegen haben die
- Großstädte ein Buchstaben weil die sind sehr häufig diese Nummernschilder ne und dann habe ich auch mehr Platz für die
- Unterscheidung der einzelnen Fahrzeuge ne also der Gedanke liegt da sehr nah da würde man vielleicht jetzt gar nicht von Entropie sprechen ne aber das ist
- letztlich die die gleiche Konstruktion also häufig vorkommende Nummernschilder haben dann eben einen entsprechend kurzen städtischen Code ne oder oder
- kreiscode bis auf diese Ausnahmen die Hamburg und so weiter die unbedingt zwei Buchstaben haben wollten und das ergibt auch direkt komimierungsverfahren ich
- kann einfach sagen ich mach das Präfix frei das häufigste Zeichen bekommt das eins bit also geht jetzt wohlgemerkt um Bits nicht um Beit ne das ein Bit das
- zweithäufigste Zeichen ne bekommt das 01 diese bit Folge das dritthäufigste Zeichen 001 und so weiter ne und damit hat dann später jedes Zeichen wirklich
- eine andere Länge gut beim letzten kann ich das noch machen dass wenn ich damit aufhöre muss ich am Ende keine eins mehr dran schreiben D kann ich auch nur Null
- nehmen es bleibt dann Präfix frei das ist hier noch so die extremste Optimierung die man noch machen kann davon abgesehen bis auf diese Nullfolge
- haben wirklich alle diese Zeichen dann verschiedene Bitlänge und wenn ich das dann speichere in der Datei muss ich auch später diese Bits da wieder
- rausschneiden ne weil die sind jetzt nicht genau auf beitgrenzen das ist also arbeitsaufwendig für CPU oder andere Beteiligte Komponenten aber für manche
- Daten ist das schon eine sehr gute Komprimierung die Idee hatten Sie auch schon ne vorhin also vielleicht habe ich so ein Unicode Text wo aber nur ganz
- wenige Zeichen vorkommen dann muss ich ja nicht immer 16 Bit daraus schreiben also OTF 16 ist ja häufig wie bei Java quellcod z.B dann kann ich oft nur so
- eine Handvoll Bits eben rausschreiben weil das die häufigen Zeichen sind die Vorkommen genau das ne das wäre eben diese entropiecodierung da sehen sie
- auch ein Beispiel genau das Wort eliminierte ne da steht dann eins für das E 001 für das L ne jetzt muss ich mal gucken danach kommt 01 für das i und
- so weiter das heißt man macht erst eine häufigkeitstabelle und dann kann man diese Bits so rausschreiben und hat ein auch leicht
- verständliches leicht programmierbares äh relativ gutes Komprimierungsverfahren es hat hier so einen praktischen Nachteil ich muss die
- ganze Datei erstmal auswerten od größeren Teil davon damit das sinnvoll ist und die Häufigkeiten bestimmen ne und muss dem Empfänger also dem also
- wenn Datenübertragung ist ne dem Empfänger dann auch diese häufigkeitstabelle geben ne und dann die komprimierte Datei also das heißt ich
- muss die Daten zweimal verarbeiten das ist hier eine Eigenschaft die ist nicht op mal ne wundert vielleicht einige weil sie denken wie soll es denn sonst gehen
- ich muss erstmal die Daten angucken und dann komprimieren und da kann ich schon verraten nein tatsächlich gibt's eine geniale Erfindung dass das jemand in
- einem Schritt geschafft hat ne das lernen wir auch gleich kennen ne aber das ist eben wie gesagt ein häufiges Element von
- kompromierungsverfahren dass man die Entropie also die Wahrscheinlichkeit dass ein bestimmtes Symbol eben Auftritt insbesondere wenn es sehr selten
- auftritt häufig auftritt dass man das ausnut bei der Erstellung eines längenvariablen Codes wir machen sowas ähnliches auch
- einmal eine Übungsaufgabe dass sie es mal durchgespielt haben aber ich glaube das ist jetzt nicht intellektuell herausfordernd eine häufigkeitstabelle
- zu machen aber nur dass sie es eben einmal verstehen das auch mal abschätzen können aber dann jetzt auch heute das eigentliche Verfahren sie merken das
- habe ich hier auch schon so ein bisschen vorbereitet ne diese Buchstaben LZW kommen wieder vor es gab da eben verschiedene Ideen beim Komprimieren ein
- paar haben wir quasi selbst entwickelt fast on the fly entwickelt wie lauflencodierung kommt elich irgendwie jeder drauf schon aufgrund der
- natürlichen Sprache dass man irgendwie sagt jetzt 10 mal ein X jetzt 20 x ein Y und so aber es gibt auch aufwendigere Algorithmen und das hier war so gewisser
- Durchbruch das ist ein so toller Algorithmus also der wurde so in zwei Hälften erfunden kann man sagen zuerst hatten zwei Erfinder also Lempel und ZiF
- ein Algorithmus entwickelt ich glaub so Ende der 70er und welch hat den dann Anfang der 80er ja doch müsste ziemlich genauso
- sein noch mal weiterentwickelt also hat den sozusagen noch mal getunt ne und daraus ergab es ein Gesamtverfahren was man heute nach allen drei benennt ne
- weil es jetzt hier nicht sinnvoll ist einzelne Erfinder herauszuheben die Anteile sind jetzt alle drei bedeutsam deswegen das Verfahren nach lempelziv
- und Welsch und kurz LZW das also ein Komprimierungsverfahren das jetzt erstmal für beliebige Daten also das muss jetzt nicht unbedingt
- sowas sein mit mit langen Lauflängen ne oder mit mit anderen Eigenschaften die wir eben herausgestellt hatten wie bei den Piktogramm oder so sondern erstmal
- ein Verfahren was sich auf beidfolgen z.B stürzt ne äh das ist eben auch hier ein möglicher Parameter man kann es auch mit statt 8
- Bit folgen mit 16 Bit oder anderen machen bevor sie das aber verwirrt äh wir würden es so wird es auch praktisch
- meistens gemacht tatsächlich als beitfoll gesehen also liest Bits ein eine Besonderheit ist schreibt aber nicht bites raus also mittelbar
- natürlich schon Datei besteht immer aus bites aber die einzelnen codierten Zeichen haben immer die Länge 12 Bit das heißt
- also er macht aus einem bite auf jeden Fall auch etwas was dann 12 Bit hat wenn es einzeln codiert wird oder und das ist hier schon mal die erste Idee um sich
- diesem Algorithmus zu nähern ne wenn man eine ganze Folge von bit codieren kann dann bekommt die auch 12 Witz ne das heißt also für einf bites lohnt sich das
- gar nicht der Algorithmus versucht also wenn wir so ein bisschen für menschlichen versucht also Folgen von bites zu finden und gibt denen dann
- Codewörter der Länge 12 Bit wissen wir gibt's gar nicht so viel also 4096 verschiedene Möglichkeiten 12 Bit anzuordnen ne das heißt da kommen die
- normalen bit schon mal rein wenn er keine keine Länge keine Folge findet ne aber dann hat er noch mal fast 4000 eben codzeichen für irgendwelche längeren
- Folgen es können sich vorstellen wir codieren z.B einen deutschen Text der jetzt irgendwie als sagen wir mal UTF8 vorliegt oder so dann haben wir
- natürlich auch solche Wörter die sich wiederholen es gibt z viele Wörter im deutschen die haben drei Buchstaben und sind häufig wie und der die das ne und
- die findet z.B dieser Algorithmus auf eine bestimmte Art und Weise und dann würde er für das Wort und oder sogar für space und space was ja be und gar nicht
- so selten ist dass vorher und nachher in space kommt ne also für diese fünf Zeichen würde er dann ein Codewort finden ne sodass dann im weiteren
- Verlauf immer nur 12 Bit für das deutsche Wort und sogar mit den beiden spaces benutzt wird ne das ist so eine Idee allerdings sie wissen es einfach
- Algorithmus der kann nicht denken der der kann kein Deutsch oder der kann nicht Sprachen unterscheiden J fallalls nicht sein Ziel hier der muss das
- irgendwie so machen dass das immer funktioniert auch mit Grafikdaten auch mit Quellcodes auch mit Maschinensprache und
- erstaunlicherweise ist da was gelungen was äh für viele Arten von Daten sehr gut funktioniert ist ein einfacher Algorithmus ne aber er hat jetzt so eine
- Komplexität dass er nicht so einfach ist wie eine lauflängencodierung aber passt auf eine Folie gut dem wollen wir uns jetzt
- einmal nähern und dann machen wir es auch gleich mit diesem Beispiel erstmal wie wie funktioniert so ein Algorithmus also speziell jetzt
- dieser hier ich hatte das schon gesagt er soll 12 Bit Werte schreiben 8 Bit Werte lesen also alle 8 Bit Werte die sowieso gibt also sprich alle bites
- bekommen schon mal auch ihren gleichnahigen 12 bitwerert also dann setzt wir einfach die ersten 4er bit n0 ne und dann ist z.B das große a im ask
- da wissen sie das ist irgendwie 001 001 oder so ich habe die Anzahl Null jetzt n geschätzt ne da kann ich ja einfach noch mal vier Nullen davors setzen ist ist
- immer noch das große a habe ich 12 Bit da ist noch nichts gewonnen das wird sogar länger um 50% ne aber das kann man ja machen in der Hoffnung dass man
- gleich guten Trick hat alles andere zu kürzen aber okay ich kann jedes Zeichen was ich in achtbit darstellen kann auch mit vier führende Nullen dann
- zusätzlichen führende Nullen vielleicht mit 12 Bit darstellen das ister Schritt 1 alle Zeichen werden erstmal in so ein Wörterbuch eingetragen ne also h gibt
- ein Wörterbuch oder so manchmal Mustertabelle da stehen dann diese späteren Folgen in so wie das deutsche Wort und ne also auch nicht nur drei
- Buchstaben er versucht noch viel längere Folgen zu finden dass er irgendwann sowas auch hat wie mit freundlichen Grüßen oder so also ganze Wortgruppen ne
- okay dann geht dieser Algorithmus die Datei durch Zeichen für Zeichen ne also wenn Sie so wollen von Anfang bis Ende von links nach rechts ne er holt immer
- ein Zeichen guckt ob es in seinem wörtlerbuch in seinem Lexikon steht ne also ob die Zeichenfolge da schon drin steht wenn ja ist gut wenn nicht
- schreibt er das raus und addiert im Wörterbuch schon mal eine Folge von zwei Zeichen nämlich das Zeichen das Folgende ist nicht schlimm wenn sie das nicht
- sofort verstehen am Beispiel wird's gleich klarer ne und nach jedem Zeichen was er eben raus schreibt hat er einen neuen Eintrag im Wörterbuch hängt also
- seh sch C das neue Wort aus Lexikon an merkt sich das letzte Zeichen und geht zurück zu Schritt 2 das ist also eine quasi Endlosschleife die endet aber
- dann wenn die Eingabe stockt also wenn er das letzte Zeichen gelesen hat dann endet der Algorithmus hier in natürlicher Weise deswegen stell bis
- keine Zeichen mehr vorhanden sind okay aber das muss etwas präzisieren man kriegt vielleicht so eine Grundidee okay er liest Zeichen für Zeichen er baut ein
- Wörterbuch dabei auf aber wie dannn jetzt genau ne und da sehen Sie hier wie schon sagt das passt auf eine Folie ist das hier ein Pseudocode also liest sich
- so ähnlich vielleicht wie wie Java oder so aber ist jetzt mehr für Menschen gedacht g daacht oder exakt für den Menschen gedacht also links ist codieren
- rechts ist decodieren packen es reicht also wenn Sie die die linke Hälfte mal genau betrachten und das mache ich hier auch gleich mit
- diesem beispielwerten ne okay also wie geht das noch mal ich habe so eine Tabelle mit allen 256 bites ja das ist erstmal nicht weiter schwierig die muss
- ich noch nicht mal speichern das sind ja immer alle Bits hintereinander ne dann fange ich an mit einem leeren String steht der Muster doppelp GLE leeres
- Muster und da sehen sie so eine wild Schleife solange noch Zeichen Folgen lese ich das nächste Zeichen und schaue ob es in der Mustertabelle schon
- existiert ne ansonsten trage ich es in der Mustertabelle ein und mache weiter wobei das Zeichen noch mal angehängt wird
- ne wie das genau geht ich nehme voller den Zettel mit weil man wenn ich michich jetzt einmal Vertu an der Tafel sind alle Folgeschritte falsch das ist jetzt
- unser String wollen wir jetzt komprimieren den habe ich im Prinzip übernommen aus Wikipedia aus gutem Grunde ne wenn Sie das nich zu Hause mal
- nachrechnen wollen auch vielleicht wenn ich mich jetzt irgendwo vertue gleich der Wikipediaartikel ist so schlecht nicht und da finden Sie genau das
- Beispiel ich habe auch ein Link auf so ein Online Codierer sie können beliebige andere Strings auch nehmen aber ist immer gut so ein quasi anliches Beispiel
- zu haben und das ist schon seit vielen Jahren unveränderten im Kapitel das nutze ich dann gerne ne okay also das gibt letztlich so Tabelle ne der
- gefundene Eintrag schreib's hier einmal relativ ausführlich gefundene Eintrag wie nehmen wir das ja
- Ausgabe und rechts in die Tabelle also die hat nur drei Spalten da sind dann die neuen wörterbuchzeichen da schreibe ich jetzt hier neuer
- Eintrag haben sie dieselbe Terminologie wie auch in dem Beispielartikel ne okay also ich lese jetzt hier los ich bin jetzt ein Algorithmus ich lese ein L
- mein Wörterbuch ist quasi leer also s jetzt erstmal nur alle Zeichen drin von 0 bis 255 alle Beit auch alle askzeichen oder so
- ne das heißt okay ich lese ein L und ich gebe dieses l aus in meinem Wörterbuch sind noch keine Zeichenfolgen ne aber jetzt geht's eben direkt schon
- los ich gucke denn ich gucke nach was denn gekommen wäre ne also das Wort was ich noch nicht im Wörterbuch im Wörter Wörterbuch ja das Wort was ich noch
- nicht im Buch hatte war hier LZ ne also immer das was mir jetzt gerade fehlt schreibe ich einfach ins wordterbuch ohne auch nur ahnen zu
- können ob ich das jemals brauche weil klar ein Algorithmus kann jetzt nicht wirklich vorausschauen ich habe ja vorhin schon
- verraten wir brauchen am besten Algorithmus der nicht zweimal durch die Daten gehen muss das macht dieser ne deswegen schaut er auch nicht voraus so
- dann schreibt der stummf rein ne also das ist der Eintrag LZ im Wörterbuch und und der bekommt das erste freie CoD den Index ne und das ist also
- 256 wie gesagt er schreibt 12 Bit Werte das heißt also er hat ein Bit gelesen und anderthalb bit geschrieben also noch ist gar nichts komprimiert aber die
- Hoffnung ist natürlich dass dieses Wörterbuch sich auszahlt ne aber vielleicht soll wir das hier noch mal hinschreiben das sind beites also a bit
- und das hier sind 12 Bit Werte
- und dadurch dass wir eben noch freie 12 Bit Werte haben können wir jetzt LZ festlegen als erstes Zeichen 256 ne weil die anderen haben wir für die
- natürlichen bites die wir lesen schon reserviert okay haben wir gemacht jetzt lesen wir ein Z ich gucke erstmal nicht auf den Zettel
- sonst können auch gerne stop sagen welchen Fehler mache dann vergleiche ich das mit dem Zettel auch das Z geben wir aus ne weil zw war nicht im
- Wörterbuch und das ist jetzt die 257 also hier wird das immer inkrementiert dann merken sie ja das
- brauch ich eigentlich auch nicht speichern das Wörterbuch ergibt sich ja ne aber ich schreib es ja einmal deutlich hin damit wir es lesen können
- ne ausgegeben wird tatsächlich auch nur das hier ne also ein Wörterbuch wird zu keinem Zeitpunkt ausgegeben ne das heißt beim Codieren beim beim Packen jetzt
- stelle ich das Wörterbuch und beim entpacken auch ne also der erstellt es auch on the fly okay jetzt kommt ein W und WL ist nicht im Wörterbuch also kann
- ich das W nur ausgeben jetzt merken jetzt habe ich schon 36 Bits verbraucht ne war noch nicht so gut weil ich habe 24 Bits gelesen wenn ich das so umrechne
- aber kommt wahrscheinlich noch ne und WL ist im Wörterbuch für 258 gut warum nicht ne so jetzt geht's aber rund jetzt Ken wieder ein L aber
- wenn wir vorausschauen sehen wir ah LZ ist schon im Wörterbuch lz7 ist nicht im Wörterbuch aber LZ ist super das heißt ich kann das hier lesen LZ jetzt auf
- einmal zwei bites und kann die in einem Zeichen ausgeben nämlich als 256 und jetzt merken Sie auch warum ich hier mehr Bits
- brauche weil ich gebe auch hier immer nur ein Zeichen aus aber ich brauche ja offen mal ein Zeichenvorrat für die Wörterbucheinträge ne deswegen also hier
- 12 Bit statt 8 Bit das wäre natürlich ein Parameter ich kann vielleicht auch mal sagen nimm doch mal 14 oder nimm 16 hast du zwei bites und je nach Datenart
- könnte sich das auch lohnen ne aber wir bleiben jetzt bei einem Beispiel sonst würden sie unnötig verwirrt werden und ins Wörterbuch kommt jetzt das was hier
- gefehlt hat das war also lz7 wie gesagt das kommt immer stumpf ins Wörterbuch SST wir an das werden wir
- nie wieder brauchen oder so wissen wir hier sowieso nicht ne aber der Algorithmus trifft sonst keine Entscheidungen nicht seine Aufgabe okay
- aber jetzt hat sich schon mal ein bisschen gelohnt noch nicht in Summe aber in dem Beispiel haben wir jetzt 16 Bits gelesen und 12 Bits geschrieben
- also ein bisschen was gespart okay jetzt haben wir also bis LZ hier gelesen und jetzt kennen wir im 7 und 78 ist noch nicht im Wörterbuch jetzt gucke ich Nour
- einmal dass es stimmt ja sieht gut aus wir lesen 7 also gemeint ist sozusagen das ask Zeichen 7 können sich vorstellen das Beit 7
- oder87 wie auch immer und dann muss er 78 als Folge ins wörderbuch Schreiben und das wäre dann die
- 260 okay danach 8 weil 8 l gibt's noch nicht im Wörterbuch jetzt kommt ist wahrscheinlich der Punkt wo die Hälfte
- von ihen etwa Algorithmus drauf hat ne andere überlegen noch was habe ich vorher alles erzählt was war wichtig oder so aber das kommt
- ähm es ist auch eine ich will damit nicht drohen aber ich will das fairerweise auch sagen das ist auch eine typische Klausuraufgabe dass man mal was
- damit LZW codiert oder dekodiert oder so ist vielleicht nicht so ein super langen String weil ne in der Klausur wollen wir mehr als ein Schema prüfen aber
- das das kann man elich ganz gut lernen und ist auch gut so ein paar Verfahren wirklich auch äh mal durchgespielt zu haben um das auch einschätzen können was
- machen die mit einer bestimmten Art von Daten okay der neue ein ne Entschuldigung das war falsch schreibt ach der neue Antrag ist
- 8L und 261 immer wenn man anfängt zu reden macht man Fehler genau so jetzt hat die a ausgegeben ah jetzt sehen wir LZ kennen wir schon lz7 kennen wir auch
- schon er kann jetzt wirklich drei auf einmal lesen lz7 weil lz7 haben wir schon im
- Wörterbuch Buch 259 können wir jetzt hier ausgeben jetzt hat sich also mal so richtig gelohnt ne und der neue Antrag ist dann
- wo waren wir jetzt bei diesem LZ ne lz77 gesagt wenn ich ein Fehler mache beschweren sie sich sofort bevor es
- einer falsch abschreibt einmal gucke ich jetzt wieder weil es ist wie gesagt und danach ist ja auch alles falsch wenn man Fehler macht aber sieht gut aus lz77 und
- 262 stimmt auch noch also ich habe mich hier auch nicht verzählt ja 7l hatten wir noch nicht ne hatten wir noch nicht genau so das heißt jetzt
- kommt ein mache ich noch 7 die sie wird ausgegeben weil 7 l gab es noch nicht im Wörterbuch ne ich das einmal so hochge hatte irgendwie so ein
- déjavu aber es gab's wirklich noch nicht und das wä jetzt 263 okay und das mache ich nach und nach so weiter und jetzt müssen sie sich so ein
- bisschen vorstellen in der Realität hätten sie ja auch eine Datei die hat nicht jetzt irgendwie 20 Bytes oder 30 Bytes vielleicht Kilobytes oder sogar
- Megabytes dann wird dieses Wörterbuch auch voll und wenn das Z Quellcode war dann sind natürlich irgendwann im Wörterbuch alle Java alle von Ihnen
- verwendeten mehr als einmal verwendeten Schlüsselwörter auch drin D sowas wie begin und end oder Case oder ne was sie da alles haben
- oder in deutschen Texten wie gesagt dann alle kurzen Wörter auf jeden Fall drin ne der die das und oder nicht ich du er sie essen also all das was in Texten
- also quasi unvermeidbar das also häufigerweise vorkommt ne all das wandelt natürlich ins Wörterbuch ne und wenn es dann später wieder benutzt wird
- brauche ich jedes Mal nur 12 Bits ne dann für ganze Wörter für ganze Wörter mit Space dann für Wörter hintereinander wie es mit freundlichen Grüßen wenn ich
- z.B e-mailarchiv komprimiere dann landet sicherlich sowas wie sehr geehrte Herr sehr geehrte Frau und so weiter also alle Wortgruppen die sich dann in so
- eine Archiv unweigerlich wiederholen vielleichtar hundertfach wiederholen alle die wandern ins Wörterbuch und können dann sehr kurz also immer mit 12
- Bits mit einem codzeichen ausgegeben werden das ist diese Erfindung und wie gesagt ein tolles komprimierungsverfah en also toll
- deswegen weil ne also ich muss n einmal durch den Text durchgehen das ist schon mal gut muss nicht zweimal lesen das ist so bei sehr großen Archiven oder großen
- Dateien wäre das schon Problem dann noch mal zurückzuspringen noch mal zu lesen also das ist cool und was auch cool ist ne weiß nicht ob sie so begeistern
- können für technische Eigenschaften von algorithmenich kann man es dann vor allem wenn man vorher die kennengelernt hatte wir haben ja nicht nur hier
- gelesen wir haben sofort geschrieben das heißt der Algorithmus ist in der Lage nicht nur zu komprimieren sondern beim Lesen der Daten direkt die komprimierten
- Daten wieder auszugeben das ist eine schöne Eigenschaft für Daten die ich auch übertrage ne also dann passt ja eine bestimmte Anzahl von bites passten
- so ein ippaket das kommt auch noch im letzten Kapitel der Vorlesung Netzwerke dann ne das heißt während ich die Datei lese und komprimiere kann ich auch schon
- anfangen sie aufs Netzwerk zu legen und zum Empfänger zu übertragen ich muss da nur einmal durchgehen ich kann sofort rausschreiben
- ich muss mir auch nicht merken was ich schon gelesen habe merken muss ich mir natürlich während ich komprimiere das Wörterbuch aber ansonsten ist das so
- fire and forget ne also ich schreib die Ausgabe und muss nicht wissen was ich vorher schon alles gelesen habe ne nur die Position in dieser Datei ne und eben
- das aktuelle Wörterbuch und wenn die Übertragung zu Ende ist W ich Datei dann geschrieben habe kann ich das Wörterbuch auch Löschen der Empfänger braucht das
- nicht weil der Empfänger auch der bekommt dann das hier dann kann er sich auch LZ und zw und so weiter ins Wörterbuch schreiben ne das heißt er
- braucht es nicht explizit weil er beim [Musik] Decodieren auch erhält ne also er generiert sich sein Wörterbuch on thefly
- ne und wenn man das so zusammenbringt merkt man ja okay das ist wirklich eine gute Eigenschaft ne viele Algorithmen die sich SP spontan ausgedacht hätten
- hätten wahrscheinlich nicht alle diese guten Eigenschaften auf einmal ja was passiert W das einfach nur alles zeichenellag genau
- also in diesem Fall wäre es so sofern wir jetzt hier keine Modifikation eintragen wenn das Wörterbuch voll ist dann gibt's keine Zeichen mehr dann
- haben wir nur noch das Wörterbuch und arbeiten damit weiter jetzt kann man sich durch Modifikation überlegen dass er vielleicht ab einer bestimmten Größe
- sagt dann macht er noch ein größeres Wörterbuch vielleicht irgendeine Markierung man kann an jedem Algorithmus feilen aber erstmal in der Grundform
- nach 4096 einträggen Schluss ja also aber auch bei deutschen Texten wissen sie da gibt doch sehr viele
- Wörter die häufig vorkommen ne und sche sowas wie Grundwortschatz oder so sagt man ja schon 1000 Wörter also bei den meisten Sprachen haben sie dort
- schon den Grundwortschatz drin mit so eine Wörterbuch bei aller Vorsicht der Vereinfachung weil noch andere Zeichen dazu kommen wie
- Satzteile oder Satzzeichen oder so auch die waren natürlich hier alle ins Wörterbuch ne aber ja das hier so eine Begrenzung
- genau also so funktioniert das M auch das machen wir mal als Übung würde ich ihn auch stark empfehlen dass Sie sowohl das Wikipedia Beispiel noch mal
- durchgehen wenn sie auch wenn Sie jetzt hier vielleicht Schwierigkeiten hatten das sofort zu verstehen noch mal ganz in Ruhe und ansonsten sich da noch mal
- weitere Beispiele vielleicht selbst generieren den Link habe ich schon bei Moodle eingestellt da habe ich jetzt einfach irgendeine Webseite genommen die
- auch lz77 macht also sag das deswegen dazu weil manche dieser Webseiten m die kenne ich nicht weiter ne also weiß nicht was da sonst für ein Produkt
- oder sonst wie beworben wird deswegen immer Vorsicht mit diesen Links aber zumindestens der LZW komprimierer und dekomprimierer der da abgebildet ist der
- macht das echt ganz schön genau das Beispiel hat ich hier noch mal auf der Folie habe ich jetzt vorher angeschrieben die Zeit genutzt
- hier sehen Sie noch mal ein Beispiel das schreibe ich jetzt aber nicht an die Tafel das würde langweilig werden hier mal für Noten das S jetzt einfach nur
- merken damit kann ich auch also es geht nicht nur um Texte oder Maschinensprache oder Grafiken hier ist mal quasi eine vektorisierte Musik also wirklich als ne
- CDE und so weiter also sie kennen sich Durtonleiter oder ähnliches ne und damit das Beispiel einfach gehalten ist ist jetzt aber die Länge sie wissen
- normalerweise wenn sieateien haben ist immer ein Ton und die Länge wie lange gespielt wird und dann welches Instrument er
- da an der Stelle versucht nachzuarmen die haben uns jetzt hier beschränkt mal einfach auf die auf die Noten selbst ne und dann kennt das jeder Bruder ob oder
- fr Jacke ne das ist dann cdec am Anfang und das wird jetzt hier auch so mit diesem Verfahren mal eben komprimiert ne am Anfang gibt's noch keine Ersparnis da
- wird das Wörterbuch aufgebaut aber auch in der Musik gibt es eben tatsächlich typische Ton folgen also es gibt auch Dinge die empfinden wir als harmonisch
- und andere nicht ne und dementsprechend gibt sich hier auch sogar relativ schnell dann schon die erste Gelegenheit dann auch äh Wörter
- aus dem Wörterbuch wirklich zu verwenden und ja einmal ein weiteres Beispiel aber dann sehen Sie hier schon im so ab der Hälfte etwa
- ähm kann er schon sehr viele Dinge ausgeben die im Wörterbuch stehen zum Schluss den gibt da fast nur noch Wörterbucheinträge aus also offenbar
- scheint sich bei Musik oder jedenfalls bei so ja recht einfache Musik so ein Kinderlied dann sehr schnell etwas zu wiederholen
- aber gut das ist ja auch bei Musik ein wichtiger Punkt dass man daund solche sich wiederholen Motive hat ne aber Sie können das Komprimieren sie brauchen
- keine Ahnung von diesen Daten zu haben der komprimierer wird auch nie wissen was soll auch mit Wissen anfangen dass das hier Musikdaten sind ne können ja
- auch Messwerte sein od irgendwas anderes ne er wird es immer eintragen jetzt steht das schon hinten als Hinweis wie ist das eigentlich mit den Lauflängen ne
- weiß ich können sie sich das Verfahren jetzt schon so im Kopf vorstellen wie gut wäre das eigentlich bei unserer Grafik die wir
- hat mit diesen vielen gelben Punkten ne die müssen nicht die ganze Grafik vor Augen haben aber ist dieses Verfahren denn auch gut wenn ich sowas habe wie
- hunderte von Pixeln in derselben Farbe also wer ich frageer sollte ich lieber für sowas dann doch lieber gucken dass er lauflencodierung macht und für
- andere Dinge dann e LZW Macht hätten sie dazu direkt eine Idee
- jaol im ein genau würde ein eintragen Wörterbuch erstellen bei jedem neuen Pixel aber das ist jetzt kein Gegenargument weil das macht das
- Verfahren sowieso bei jeder Ausgabe wird ein neuer Eintrag im Wörterbuch erstellt das macht ja hier sozusagen stur egal ob das
- sinnvoll ist oder nicht ja genau das Wörterbuch wirkt dadurch vielleicht ein bisschen komisch wenn jetzt ganz viele gelbe Pixel oder so hintereinander
- kommen ja ansonsten wird es dann funktionieren wird dann wirklich komprimiert werden ja würde funktionieren sagen sie
- m genau ich habe dann plötzlich sehr viele Folgen von gelben Pixel im Wörterbuch aber es würde auch funktionieren ne oder meint jemand nee
- nee da hat er sich jetzt vertan W jetzt wirklich nur gelbe Pixel kommen dann funktioniert ja doch nicht weil oder so traut sichemand Argument zu
- jaich das Wörterbuch wird schnell voll genau also W ist ein Argument aber da möchte ich erinnern der Algorithmus wie gesagt wenn er erstmal hier
- 4000 Ausgaben getätigt hat ne dann ist das Wörterbuch sowieso voll ne also das heißt da müsste ich eventuell wenn ich wenn ich jetzt mit großen Grafiken zu
- tun habe überlegen ob jetzt vielleicht der Parameter 12 Bit ne der jetzt hier die 496 erzeugt ob der anzupassen wäre ne aber dann haben sie natürlich inoweit
- Recht das wäre hier eine Überlegung ob das passt aber jedenfalls beide hatten jetzt erstmal gesagt ansonsten wir aber
- funktionieren das Wörterbuch sieht zwar komisch aus aber die Lauflängen ne die treten dann hier eben auch auf und genauso ist es auch aber
- das machen wir jetzt nicht mit Zettel und Stift sondern kann ich i noch diesen Simulator mal zeigen habe ich den hier
- so ich hoff mal wahrscheinlich ist es WLAN zwisch euch wieder unterbrochen aber ich hat vorhin schon mal verbunden mal gucken so das ist eben ein den habe
- ich tatslich so gegoogelt ja den können Sie sich mal angucken sollte diese Seite jetzt aber mal offline gehen so kurz vor der
- Klausur und sie kriegen Riesens Schritt also sie finden da auch ein Dutzend andere Treffer der war jetzt besonders gut weil er auch so unsere Schreibweisen
- und diese 12 Bit und alles voreingestellt hat ne aber jetzt können wir das hier mal Testen erstmal ob es klappt ich nehme mal eben noch die Folie
- mit dem LZW da haben gerade so vor Augen das markiere ich jetzt mal ich weiß nicht ob sie es sehen ne jetzt sehen sie natürlich auch nicht mehr was sie jetzt
- nicht sehen ist ich markiere auf der Folie diesen String und versuche in die Zwischenablage zu schrieben a irgendeinem Grund ich hasse
- das Grund kann ich nicht bei Doppelklick markieren aber zum Glück ging es so und jetzt bin ich hier in dem Browser ja das hat
- geklappt okay nimmt nicht das Wort enter also die Taste Enter sondern ich muss hier Klicken es klappt ohne
- Netzwerkverbindung wow so jetzt sehen sie auch compressed also er hat ausgegeben LZW dann 256 dann 78 259 ne genau wie wir auch er schreibt das jetzt
- hier nur in eckigen Klammern und eine Zeile und nicht als Tabelle aber das ist der einzige Unterschied also er macht es ansonsten genauso wie wir auch ne und
- er sagt uns noch er hat dann von 256 bis 271 das Wörterbuch voll geschrieben ne dann hat man so ein Wert wie groß das Wörterbuch gefunden gewachsen ist bei
- der Gelegenheit okay jetzt können wir zu unserem Beispiel zurückkehren jetzt haben wir schwarze und gelbe Pixel ich
- kann das ja einfach mal durch kleine GS machen ne jetzt kommen ganz viele gelbe Pixel ich zähle jetzt auch nicht ist jetzt mehr so ein Beispiel sag jetzt
- haben wir drei schwarze ein bisschen breiter SSS jetzt kommen wieder ganz viele gelbe wieder drei schwarze und noch mal
- ein paar gelbe das wir jetzt nur mal sowas haben was so ungefähr der Struktur entspricht ohne es jetzt gezählt zu haben wollen nur wissen kommt der
- allgemein damit zurecht oder ist das jetzt irgendwie so ganz unglücklich ne z.B bei lauflängencodierung haben wir gesehen das wäre unglücklich für die
- deutsche Sprache ne weil selten ein Buchstabe sich wiederholt ich meine es gibt solche Wörter wie Al oder so ne mit zwei as aber die muss man schon suchen
- ne in so einem langen Text ne wie wär es denn hier umgekehrt so jetzt gucken wir mal und da sehen wir tatsächlich das ist sehr gut gelaufen und zwar hat er direkt
- rausgeschrieben 256 257 258 also sieht man auch das ist offenbar diese Folge bis es zu denen schwarzen Pixeln kommt das ist immer eins höher ne weil genau
- das passiert im Wörterbuch steht da nämlich GG ne ich was mal mit Zahlen also 2gs 3GS 4 5 6 7 GS 8gs ne also da kommt
- immer das nächste Wort wo noch einmal g dahinter geschrieben wird und das kann er dann auch verwenden ne das heißt beim rauschreiben kann er nachdem das erstmal
- Wörterbuch steht kann er sofort rauschreiben zwei danach drei danach direkt auf vier ne das heißt mit jedem weiteren Zeichen hat er ein Wort was ein
- Beit länger ist das Verfahren ist also tatsächlich für Lauflängen auch sehr gut ne es ist jetzt nicht so gut wie ein reines
- lauflängenverfahren weil da guckt er sofort jemand in die Zukunft ne aber so nach und nach wird er sich ja alle Lauflängen ein des Zeichens bis bis 100
- in unserem Beispiel oder bis 128 oder 256 oder was wir da eben hatten bei unserer einfachen Grafik die wird er sich alle im Wörterbuch eben holen und
- dann schlagartig immer mit einem 12 bitwort ne rausschreiben können ne und daraus ergibt sich hier eben diese besondere Struktur dass er dann immer
- das nächste codwort nimmt also immer ein Zeichen mehr unterbringt ne und das wird erst durchbrochen wenn das erste s kommt ne und dann noch mal als das zweite s
- kam und wenn W wir jetzt hier noch weiter gemacht hätten nee weiter zeigt das jetzt hier nicht an irgendwann hätte auch zwei Buchstaben S dann im
- Wörterbuch gefunden aber soweit sind wir jetzt hier nicht mehr gekommen ne aber das decompressed ist also hier genauso gut gegangen und er hat jetzt auch nur
- hier das aufgeschriebenes 287 das kommt jetzt fast ein bisschen wenig vor es kann sein dass er hier nur ein Teil ausgibt weil das jetzt wie gesagt
- meessrer die backausgabe ist für jemanden der vielleicht seine Ergebnisse mit Zettel und Stift hier einmal überprüfen möchte ja so gut kN ich das
- tun ich habe es auch nicht programmiert war wie gesagt einfach nur eine googleuche nach einem LZW Verfahren ansonsten gefällt mir die Seite also
- jetzt dieser dieser einfache eingabemechanismus ganz gut es gibt hier nur einen ganz blöden Nachteil die haben welch falsch geschrieben ne ich bin doch
- ziemlich sicher dass lempelzif Welsch als wird Welsch gesprochen aber schreibt D mit ch das bisschen schadeade englischsprachige Seite h man gedacht
- die machen eine Fehler vielleicht weniger häufig aber vielleicht hat einer rausgehört und dachte irgendwie an Valis an Wales oder so W people weiß ich nicht
- aber das ist jedenfalls ein chipfehler ansonsten funktioniert das wie gesagt hier ganz gut ja das wäre auch schon alles soweit dazu heute
- schenke ich ih mal ein paar Minuten zum Schluss hin aber bedenken Sie sie haben auch heute wieder die Möglichkeit Sonderpunkte zu erwischen mit dem Eva
- exam Test ne wenn jetzt jemand keinen Rechner hat oder nicht online gehen kann und den zu machen dann bitte jetzt auch gleich noch bei melden schließen wir ein
- Labor für Sie auf anssten viel Erfolg und wir sehen uns gleich in der Übung
Zum Nachlesen
DatenkompressionDatenkomprimierung [1] genannt – ist ein Vorgang, bei dem die Menge digitaler Daten reduziert wird. Dadurch sinkt der Speicherbedarf,
Lempel-Ziv-Welch-AlgorithmusDer Lempel-Ziv-Welch-Algorithmus (kurz LZW-Algorithmus oder LZW genannt) ist ein häufig bei Grafikformaten zur Datenkompression, also zur Reduzierung der …
LauflängenkodierungDie Lauflängenkodierung (englisch run-length encoding, kurz RLE), auch die Lauflängencodierung, ist ein einfacher verlustfreier Kompressionsalgorithmus.
Huffman-KodierungDie Huffman-Kodierung ist eine Form der Entropiekodierung, die 1952 von David A. Huffman entwickelt und in der Abhandlung A Method for the Construction of …