Home » Best word to gif Update

Best word to gif Update

by Tratamien Torosace

You are viewing this post: Best word to gif Update

Neues Update zum Thema word to gif


GIFWikipedia Aktualisiert

The Graphics Interchange Format (GIF; / ɡ ɪ f / GHIF or / dʒ ɪ f / JIF, see pronunciation) is a bitmap image format that was developed by a team at the online services provider CompuServe led by American computer scientist Steve Wilhite and released on 15 June 1987. It has since come into widespread usage on the World Wide Web due to its wide support and portability between …

+ hier mehr lesen

Read more

Familie von Bitmap-Bilddateiformaten

Das Graphics Interchange Format (GIF; GHIF oder JIF, siehe Aussprache) ist ein Bitmap-Bildformat, das von einem Team des Online-Diensteanbieters CompuServe unter der Leitung des amerikanischen Informatikers Steve Wilhite entwickelt und am 15

Juni 1987 veröffentlicht wurde.[1] Aufgrund seiner breiten Unterstützung und Portierbarkeit zwischen Anwendungen und Betriebssystemen ist es seitdem im World Wide Web weit verbreitet

Das Format unterstützt bis zu 8 Bit pro Pixel für jedes Bild, sodass ein einzelnes Bild auf seine eigene Palette von bis referenzieren kann bis zu 256 verschiedene Farben, die aus dem 24-Bit-RGB-Farbraum ausgewählt werden

Es unterstützt auch Animationen und ermöglicht eine separate Palette mit bis zu 256 Farben für jeden Frame

Diese Palettenbeschränkungen machen GIF weniger geeignet für die Reproduktion von Farbfotos und anderen Bildern mit Farbverläufen, aber gut geeignet für einfachere Bilder wie Grafiken oder Logos mit durchgehenden Farbbereichen

GIF-Bilder werden mit dem Lempel-Ziv-Welch (LZW ) verlustfreie Datenkomprimierungstechnik, um die Dateigröße zu reduzieren, ohne die visuelle Qualität zu beeinträchtigen

Diese Komprimierungstechnik wurde 1985 patentiert

Kontroversen über die Lizenzvereinbarung zwischen dem Softwarepatentinhaber Unisys und CompuServe im Jahr 1994 trieben die Entwicklung des Standards Portable Network Graphics (PNG) voran

Bis 2004 waren alle relevanten Patente abgelaufen

Geschichte [ bearbeiten ]

CompuServe führte GIF am 15

Juni 1987 ein, um ein Farbbildformat für ihre Bereiche zum Herunterladen von Dateien bereitzustellen

Dies ersetzte ihr früheres Run-Length-Codierungsformat, das nur Schwarzweiß war

GIF wurde populär, weil es die LZW-Datenkomprimierung verwendete

Da dies effizienter war als die von PCX und MacPaint verwendete Lauflängencodierung, konnten ziemlich große Bilder selbst mit langsamen Modems relativ schnell heruntergeladen werden

Die ursprüngliche Version von GIF hieß 87a.[1] 1989 veröffentlichte CompuServe eine erweiterte Version namens 89a[2], die Unterstützung für Animationsverzögerungen (mehrere Bilder in einem Stream wurden bereits in 87a unterstützt), transparente Hintergrundfarben und die Speicherung anwendungsspezifischer Metadaten hinzufügte

Die 89a-Spezifikation unterstützt auch das Einfügen von Textetiketten als Text (nicht das Einbetten in die Grafikdaten), aber da es wenig Kontrolle über die Anzeigeschriftarten gibt, wird diese Funktion nicht weit verbreitet

Die beiden Versionen können unterschieden werden, indem man sich die ersten sechs Bytes der Datei ansieht (die „magische Nummer“ oder Signatur), die, wenn sie als ASCII interpretiert werden, „GIF87a“ bzw

„GIF89a“ lauten GIF, indem herunterladbare Konvertierungsprogramme für viele Computer bereitgestellt werden

Bis Dezember 1987 konnte beispielsweise ein Apple IIGS-Benutzer Bilder ansehen, die auf einem Atari ST oder Commodore 64 erstellt wurden.[3] GIF war eines der ersten beiden Bildformate, die häufig auf Websites verwendet wurden, das andere war das schwarz-weiße XBM.[4]

Im September 1995 fügte Netscape Navigator 2.0 die Möglichkeit hinzu, animierte GIFs zu loopen Bildscanzeilen in einer solchen Weise falsch, dass sogar ein teilweise heruntergeladenes Bild einigermaßen erkennbar war, trug auch zur Popularität von GIF bei, da ein Benutzer den Download abbrechen konnte, wenn er nicht erforderlich war

Im Mai 2015 fügte Facebook Unterstützung hinzu für GIF.[6][7] Im Januar 2018 fügte Instagram dem Story-Modus auch GIF-Sticker hinzu.[8]

Terminologie[Bearbeiten]

Als Substantiv findet sich das Wort GIF in den neueren Ausgaben vieler Wörterbücher

Im Jahr 2012 erkannte der amerikanische Flügel der Oxford University Press GIF auch als Verb an, was “eine GIF-Datei erstellen” bedeutet, wie in “GIFing war das perfekte Medium, um Szenen von den Olympischen Sommerspielen zu teilen”

Die Lexikographen der Presse wählten es zu ihrem Wort des Jahres und sagten, dass sich GIFs zu „einem Werkzeug mit ernsthaften Anwendungen einschließlich Forschung und Journalismus“ entwickelt haben.[9][10]

Aussprache

GIF mit einem harten g

Ein humorvolles Bild, das den Start eines Tumblr-Kontos für das Weiße Haus ankündigt, schlägt vor, es mit einem harten auszusprechen

Die Ersteller des Formats sprachen das Akronym GIF als aus, mit einem sanften g wie in „Gin“

Wilhite gab an, dass die beabsichtigte Aussprache absichtlich die amerikanische Erdnussbuttermarke Jif widerspiegelt, und CompuServe-Mitarbeiter würden oft scherzen: “Wählerische Entwickler wählen GIF”, eine Parodie auf Jifs Fernsehwerbung

Das Wort wird jetzt auch weithin ausgesprochen, mit einem harten g wie in „Geschenk“.[12] Im Jahr 2017 zeigte eine informelle Umfrage auf der Programmierwebsite Stack Overflow eine gewisse numerische Präferenz für die harte Aussprache von g,[13] insbesondere unter den Befragten in Osteuropa, obwohl sich herausstellte, dass sowohl das weiche g als auch die individuelle Aussprache jedes Buchstabens in Asien beliebt sind und Teile von Afrika.[14]

Dictionary.com[15] zitiert beide und gibt die primäre Aussprache an, während das Cambridge Dictionary of American English[16] nur die Hard-g-Aussprache anbietet

Merriam-Webster’s Collegiate Dictionary[17] und Oxford Dictionaries zitieren beide Aussprachen, aber setzen das harte g zuerst:. [18][19][20][21] Das New Oxford American Dictionary gab nur in seiner zweiten Ausgabe[22] aber aktualisierte es in der dritten Auflage.[23]

Die Meinungsverschiedenheit über die Aussprache hat zu einer hitzigen Debatte im Internet geführt

Anlässlich der Verleihung eines Preises für sein Lebenswerk bei der Verleihung der Webby Awards 2013 lehnte Wilhite die Aussprache des harten g öffentlich ab;[12][24][25] seine Rede führte zu mehr als 17.000 Posts auf Twitter und Dutzenden von Nachrichtenartikeln

[26] Das Weiße Haus[12] und die Fernsehsendung Jeopardy! traten 2013 ebenfalls in die Debatte ein.[25]

Im Februar 2020 hat sich The JM Smucker Company, die Eigentümer der Marke Jif, mit der Datenbank für animierte Bilder und der Suchmaschine Giphy zusammengetan, um ein Glas Erdnussbutter in limitierter Auflage „Jif vs

GIF“ (mit dem Hashtag #JIFvsGIF) herauszubringen ein Etikett, das humorvoll erklärt, dass sich die weiche -g-Aussprache ausschließlich auf die Erdnussbutter bezieht, und GIF ausschließlich mit der harten-g-Aussprache ausgesprochen wird

Verwendung[Bearbeiten]

GIFs eignen sich für scharfkantige Strichzeichnungen mit einer begrenzten Anzahl von Farben, wie z

B

Logos

Dies nutzt die verlustfreie Komprimierung des Formats aus, die flache Bereiche mit einheitlicher Farbe und gut definierten Kanten bevorzugt.[28] Sie können auch verwendet werden, um Low-Color-Sprite-Daten für Spiele zu speichern.[29] GIFs können für kleine Animationen und Videoclips mit niedriger Auflösung oder als Reaktionen in Online-Messaging verwendet werden, um Emotionen und Gefühle zu vermitteln, anstatt Worte zu verwenden

Sie sind auf Social-Media-Plattformen wie Tumblr, Facebook und Twitter beliebt

[Zitat erforderlich]

Dateiformat [Bearbeiten]

Konzeptionell beschreibt eine GIF-Datei einen grafischen Bereich fester Größe (den „logischen Bildschirm“), der mit null oder mehr „Bildern“ gefüllt ist

Viele GIF-Dateien haben ein einzelnes Bild, das den gesamten logischen Bildschirm ausfüllt

Andere teilen den logischen Bildschirm in separate Teilbilder

Die Bilder können auch als Animationsframes in einer animierten GIF-Datei fungieren, aber auch diese müssen nicht den gesamten logischen Bildschirm ausfüllen

GIF-Dateien beginnen mit einem Header mit fester Länge (“GIF87a” oder “GIF89a”), der die Version angibt, gefolgt von ein logischer Bildschirmdeskriptor fester Länge, der die Pixelabmessungen und andere Eigenschaften des logischen Bildschirms angibt

Der Bildschirmdeskriptor kann auch das Vorhandensein und die Größe einer globalen Farbtabelle (GCT) angeben, die als nächstes folgt, falls vorhanden

Danach wird die Datei in Segmente unterteilt, die jeweils durch einen 1-Byte-Wächter eingeleitet werden:

Ein Bild (eingeleitet durch 0x2C, ein ASCII-Komma ‘,’ )

) Ein Erweiterungsblock (eingeleitet durch 0x21, ein ASCII-Ausrufezeichen ‘!’ )

) Der Trailer (ein einzelnes Byte mit dem Wert 0x3B, ein ASCII-Semikolon ‘;’ ), der das letzte Byte der Datei sein sollte.

Ein Bild beginnt mit einem Bilddeskriptor fester Länge, der das Vorhandensein und die Größe einer lokalen Farbtabelle angeben kann (die als nächstes folgt, falls vorhanden)

Es folgen die Bilddaten: ein Byte, das die Bitbreite der uncodierten Symbole angibt (die auch bei zweifarbigen Bildern mindestens 2 Bit breit sein müssen), gefolgt von einer verknüpften Liste von Unterblöcken, die die LZW-codierten Daten enthalten

Erweiterungsblöcke (Blöcke, die die 87a-Definition über einen bereits in der 87a-Spezifikation definierten Mechanismus “erweitern”) bestehen aus dem Sentinel, einem zusätzlichen Byte, das den Typ der Erweiterung angibt, und einer verknüpften Liste von Unterblöcken mit den Erweiterungsdaten

Erweiterungsblöcke, die ein Bild modifizieren (wie die Graphic Control Extension, die die optionale Animationsverzögerungszeit und die optionale transparente Hintergrundfarbe angibt), müssen dem Segment mit dem Bild, auf das sie sich beziehen, unmittelbar vorangehen

Die verknüpften Listen, die von den Bilddaten und den Erweiterungsblöcken verwendet werden bestehen aus einer Reihe von Unterblöcken, wobei jeder Unterblock mit einem Byte beginnt, das die Anzahl der nachfolgenden Datenbytes im Unterblock angibt (1 bis 255)

Die Reihe von Unterblöcken wird durch einen leeren Unterblock (ein 0-Byte) abgeschlossen

Diese Struktur ermöglicht, dass die Datei geparst wird, selbst wenn nicht alle Teile verstanden werden

Ein mit 87a gekennzeichnetes GIF kann Erweiterungsblöcke enthalten; Die Absicht ist, dass ein Decoder die Datei ohne die Funktionen lesen und anzeigen kann, die in Erweiterungen enthalten sind, die er nicht versteht

Alle Details des Dateiformats werden in der GIF-Spezifikation behandelt.[2]

Paletten[Bearbeiten]

Ein Beispiel für ein GIF-Bild, das mit einer websicheren Palette gespeichert und mit der Floyd-Steinberg-Methode gedithert wurde

Aufgrund der reduzierten Anzahl von Farben im Bild treten Anzeigeprobleme auf

GIF ist palettenbasiert: Die in einem Bild (einem Rahmen) in der Datei verwendeten Farben haben ihre RGB-Werte, die in einer Palettentabelle definiert sind, die enthalten kann bis zu 256 Einträge, und die Daten für das Bild beziehen sich auf die Farben durch ihre Indizes (0-255) in der Palettentabelle

Die Farbdefinitionen in der Palette können aus einem Farbraum von Millionen von Schattierungen (224 Schattierungen, 8 Bit für jede Primärfarbe) gezogen werden, aber die maximale Anzahl von Farben, die ein Rahmen verwenden kann, beträgt 256

Diese Einschränkung erschien vernünftig, als GIF entwickelt wurde, weil nur wenige Menschen konnten sich die Hardware leisten, um mehr Farben gleichzeitig anzuzeigen

Einfache Grafiken, Strichzeichnungen, Cartoons und Graustufenfotografien benötigen normalerweise weniger als 256 Farben

Jeder Rahmen kann einen Index als “transparente Hintergrundfarbe” festlegen: Jedes Pixel, dem dieser Index zugewiesen ist, nimmt die Farbe des Pixels in demselben an Position vom Hintergrund, die möglicherweise durch einen vorherigen Animationsframe bestimmt wurde

Viele Techniken, die zusammen als Dithering bezeichnet werden, wurden entwickelt, um einen größeren Farbbereich mit einer kleinen Farbpalette anzunähern, indem Pixel mit zwei oder mehr Farben zur Annäherung verwendet werden zwischen den Farben

Diese Techniken opfern die räumliche Auflösung, um sich einer tieferen Farbauflösung anzunähern

Obwohl es nicht Teil der GIF-Spezifikation ist, kann Dithering in Bildern verwendet werden, die anschließend als GIF-Bilder codiert werden

Dies ist oft keine ideale Lösung für GIF-Bilder, sowohl weil der Verlust der räumlichen Auflösung ein Bild normalerweise unscharf auf dem Bildschirm erscheinen lässt, als auch weil die Dithering-Muster oft die Komprimierbarkeit der Bilddaten beeinträchtigen und dem Hauptzweck von GIF zuwiderlaufen

See also  Top com1 to usb adapter New

In den frühen Tagen der grafischen Webbrowser [wann?] waren Grafikkarten mit 8-Bit-Pufferspeichern (die nur 256 Farben zuließen) üblich, und es war ziemlich üblich, GIF-Bilder mit der websicheren Palette zu erstellen

[laut wem?] Dies stellte sicher vorhersagbare Darstellung, schränkte aber die Farbauswahl stark ein

Als 24-Bit-Farben zur Norm wurden, konnten Paletten stattdessen mit den optimalen Farben für einzelne Bilder gefüllt werden.

Für kleine Bilder kann eine kleine Farbtabelle ausreichen, und wenn Sie die Farbtabelle klein halten, kann die Datei schneller heruntergeladen werden

Sowohl die 87a- als auch die 89a-Spezifikation erlauben Farbtabellen mit 2n Farben für beliebige n von 1 bis 8

Die meisten Grafikanwendungen können GIF-Bilder mit jeder dieser Tabellengrößen lesen und anzeigen; Einige unterstützen jedoch nicht alle Größen beim Erstellen von Bildern

Tabellen mit 2, 16 und 256 Farben werden weitgehend unterstützt

True Color [ bearbeiten ]

Ein animiertes GIF, das eine Technik zum Anzeigen von mehr als der typischen Grenze von 256 Farben veranschaulicht

Obwohl GIF fast nie für Echtfarbenbilder verwendet wird, ist dies möglich.[30][31] Ein GIF-Bild kann mehrere Bildblöcke enthalten, von denen jeder seine eigene 256-Farben-Palette haben kann, und die Blöcke können gekachelt werden, um ein vollständiges Bild zu erstellen

Alternativ führte die GIF89a-Spezifikation die Idee einer “transparenten” Farbe ein, bei der jeder Bildblock seine eigene Palette von 255 sichtbaren Farben plus eine transparente Farbe enthalten kann

Ein vollständiges Bild kann durch Schichten von Bildblöcken erstellt werden, wobei der sichtbare Teil jeder Schicht durch die transparenten Teile der darüber liegenden Schichten hindurchscheint mehr als 255 oder 256 verschiedene Farben

Jeder dieser Bereiche wird dann als separater Bildblock mit seiner eigenen lokalen Palette gespeichert, und wenn die Bildblöcke zusammen angezeigt werden (entweder durch Kachelung oder durch Schichtung von teilweise transparenten Bildblöcken), erscheint das vollständige Vollfarbbild

Wenn Sie beispielsweise ein Bild in Kacheln von 16 x 16 Pixel (insgesamt 256 Pixel) aufteilen, wird sichergestellt, dass keine Kachel mehr als die lokale Palettengrenze von 256 Farben hat, obwohl größere Kacheln verwendet und ähnliche Farben zusammengeführt werden können, was zu einem gewissen Farbverlust führt Informationen.[30]

Da jeder Bildblock seine eigene lokale Farbtabelle haben kann, kann eine GIF-Datei mit vielen Bildblöcken sehr groß sein, was die Nützlichkeit von vollfarbigen GIFs einschränkt.[31] Darüber hinaus verarbeiten nicht alle GIF-Rendering-Programme gekachelte oder geschichtete Bilder korrekt

Viele Rendering-Programme interpretieren Kacheln oder Ebenen als Animationsframes und zeigen sie nacheinander als Animation an[30], wobei die meisten Webbrowser die Frames automatisch mit einer Verzögerungszeit von 0,1 Sekunden oder mehr anzeigen.[32][33][bessere Quelle erforderlich]

Beispiel-GIF-Datei [ bearbeiten ]

Beispielbild (vergrößert), tatsächliche Größe 3 Pixel breit und 5 hoch

h bis 30C h definiert im Beispiel eine Palette von 256 Farben

Bytes Dto 30C im Beispiel definieren eine Palette mit 256 Farben

Microsoft Paint speichert ein kleines Schwarz-Weiß-Bild als folgende GIF-Datei

Paint nutzt GIF nicht optimal; Aufgrund der unnötig großen Farbtabelle (Speicherung von vollen 256 Farben statt der verwendeten 2) und Symbolbreite ist diese GIF-Datei keine effiziente Darstellung des 15-Pixel-Bildes (oben vergrößert dargestellt)

Obwohl die Graphic Control Extension block deklariert den Farbindex 16 (hexadezimal 10) als transparent, dieser Index wird im Bild nicht verwendet

Die einzigen Farbindizes, die in den Bilddaten erscheinen, sind dezimal 40 und 255, die die globale Farbtabelle Schwarz bzw

Weiß zuordnet

Beachten Sie, dass die Hexadezimalzahlen in den folgenden Tabellen in Little-Endian-Byte-Reihenfolge sind, wie es die Formatspezifikation vorschreibt.

Tabelle mit beispielhaften GIF-Bildwerten Byte # (hex) Hexadezimal Text oder Wert Bedeutung 0 47 49 46 38 39 61 GIF89a Header 6 03 00 3 Logische Bildschirmbreite 8 05 00 5 Logische Bildschirmhöhe Es folgt ein F7 GCT für 256 Farben mit Auflösung 3 × 8 Bit/primär, die niedrigsten 3 Bit stellen die Bittiefe minus 1 dar, das höchste wahre Bit bedeutet, dass die GCT vorhanden ist B 00 0 Hintergrundfarbe: #000000, schwarz C 00 0 Standard-Pixel-Seitenverhältnis, 0:0 D 00 00 00 R (Rot) G (Grün) B (Blau) 0 0 0 Globale Farbtabelle, Farbe #0: #000000, Schwarz 10 80 00 00 R (Rot) G (Grün) B (Blau) 128 0 0 Global Farbtabelle, Farbe Nr

1: transparentes Bit, nicht im Bild verwendet. .

..

..

Globale Farbtabelle erstreckt sich auf 30A 30A FF FF FF R (Rot) G (Grün) B (Blau) 255 255 255 Globale Farbe Tabelle, Farbe #255: #ffffff, weiß 30D 21 F9 Graphic Control Extension (Kommentarfelder davor in den meisten Dateien) 30F 04 4 Menge GCE-Daten, 4 Bytes 310 01 Transparente Hintergrundfarbe; dies ist ein Bitfeld, das niedrigste Bit bedeutet Transparenz 311 00 00 Verzögerung für Animation in Hundertstelsekunden; nicht verwendet 313 10 16 Farbnummer des transparenten Pixels in GCT 314 00 Ende des GCE-Blocks 315 2C Bilddeskriptor 316 00 00 00 00 (0, 0) Position der nordwestlichen Ecke des Bildes im logischen Bildschirm 31A 03 00 05 00 (3, 5) Bildbreite und -höhe in Pixeln 31E 00 0 Lokales Farbtabellenbit, 0 bedeutet keine 31F 08 8 Anfang des Bildes, LZW-Mindestcodegröße 320 0B 11 Menge des LZW-codierten Bildes folgt, 11 Bytes 321 00 51 FC 1B 28 70 A0 C1 83 01 01 11 Bytes Bilddaten, siehe Feld 320 32C 00 0 Ende des Bilddatenblocks 32D 3B Dateibeendigung

Bildkodierung[Bearbeiten]

Die horizontal von oben links gescannten Bildpixeldaten werden durch LZW-Codierung in Codes konvertiert, die dann in Bytes zum Speichern in der Datei abgebildet werden

Die Pixelcodes stimmen normalerweise nicht mit der 8-Bit-Größe der Bytes überein, daher werden die Codes nach einem “Little-Endian”-Schema in Bytes gepackt: Das niedrigstwertige Bit des ersten Codes wird im niedrigstwertigen Bit des gespeichert erste Byte, höherwertige Bits des Codes in höherwertige Bits des Bytes, wobei sie nach Bedarf in die niederwertigen Bits des nächsten Bytes übergehen

Jeder nachfolgende Code wird beginnend mit dem niedrigstwertigen Bit gespeichert, das noch nicht verwendet wurde

Dieser Bytestrom wird in der Datei als eine Reihe von “Unterblöcken” gespeichert

Jeder Unterblock hat eine maximale Länge von 255 Bytes und ist mit einem Byte vorangestellt, das die Anzahl der Datenbytes in dem Unterblock angibt

Die Reihe von Unterblöcken wird durch einen leeren Unterblock abgeschlossen (ein einzelnes 0-Byte, das einen Unterblock mit 0 Datenbytes anzeigt)

Für das obige Beispielbild ist die umkehrbare Zuordnung zwischen 9-Bit-Codes und Bytes unten gezeigt.

Reversible Mapping 9-Bit-Byte-Code Hexadezimal-binärer Binärer Hexadezimal 100 1 00000000 00000000 00 028 00 0101000 0101000 1 51 0FF 011 111111 111111 103 1000 00011 00 FC 1B 011 102 10000 0010 0010 1000 28 103 1000 011 011 10000 70 106 1000001 Eine leichte Komprimierung ist offensichtlich: Anfangs durch 15 Bytes definierte Pixelfarben werden exakt durch 12 dargestellt

Codebytes einschließlich Steuercodes Der Codierprozess, der die 9-Bit-Codes erzeugt, ist unten gezeigt

Eine lokale Zeichenfolge sammelt Pixelfarbnummern aus der Palette ohne Ausgabeaktion, solange die lokale Zeichenfolge in einer Codetabelle gefunden werden kann

Es gibt eine spezielle Behandlung der ersten zwei Pixel, die ankommen, bevor die Tabelle durch Hinzufügen von Zeichenfolgen von ihrer ursprünglichen Größe anwächst

Nach jedem Ausgabecode wird die lokale Zeichenfolge mit der letzten Pixelfarbe initialisiert (die nicht in den Ausgabecode aufgenommen werden konnte).

Tabelle 9-Bit-String –> Codecode Aktion #0 | 000h Stammtabelle des 9-Bit-Codebereichs initialisieren | : Farben | : #255 | 0FFh clr | 100 Stunden Ende | 101h | 100h Pixel löschen lokal | Farbpalette Zeichenfolge | SCHWARZ #40 28 | 028h 1

Pixel immer zur Ausgabe von WHITE #255 FF | String gefunden in Tabelle 28 FF | 102h Füge immer den 1

String zur Tabelle FF hinzu | Lokalen String initialisieren WHITE #255 FF FF | Zeichenfolge nicht in Tabelle | gefunden 0FFh – Ausgabecode für die vorherige Zeichenfolge FF FF | 103h – letzten String zur Tabelle FF hinzufügen | – initialisiert lokalen String WHITE #255 FF FF | String gefunden in Tabelle BLACK #40 FF FF 28 | Zeichenfolge nicht in Tabelle | gefunden 103h – Ausgabecode für vorherigen String FF FF 28 | 104h – letzten String zu Tabelle 28 hinzufügen | – Lokale Zeichenkette WHITE #255 28 FF initialisieren | String gefunden in Tabelle WHITE #255 28 FF FF | Zeichenfolge nicht in Tabelle | gefunden 102h – Ausgabecode für vorherigen String 28 FF FF | 105h – letzten String zur Tabelle FF hinzufügen | – initialisiert lokalen String WHITE #255 FF FF | String gefunden in Tabelle WHITE #255 FF FF FF | Zeichenfolge nicht in Tabelle | gefunden 103h – Ausgabecode für die vorherige Zeichenfolge FF FF FF | 106h – letzten String zur Tabelle FF hinzufügen | – initialisiert lokalen String WHITE #255 FF FF | String gefunden in Tabelle WHITE #255 FF FF FF | String gefunden in Tabelle WHITE #255 FF FF FF FF | Zeichenfolge nicht in Tabelle | gefunden 106h – Ausgabecode für die vorherige Zeichenfolge FF FF FF FF| 107h – letzten String zur Tabelle FF hinzufügen | – initialisiert lokalen String WHITE #255 FF FF | String gefunden in Tabelle WHITE #255 FF FF FF | String gefunden in Tabelle WHITE #255 FF FF FF FF | String in Tabelle gefunden Keine Pixel mehr 107h – Ausgabecode für letzten String 101h Ende

Zur Verdeutlichung ist die Tabelle oben als aus Saiten zunehmender Länge aufgebaut dargestellt

Dieses Schema kann funktionieren, aber die Tabelle verbraucht eine unvorhersehbare Menge an Speicher

In der Praxis kann Speicherplatz eingespart werden, indem beachtet wird, dass jede neu zu speichernde Zeichenkette aus einer zuvor gespeicherten Zeichenkette besteht, die um ein Zeichen erweitert ist

Es ist wirtschaftlich, an jeder Adresse nur zwei Wörter zu speichern: eine existierende Adresse und ein Zeichen

Der LZW-Algorithmus erfordert ein Durchsuchen der Tabelle für jedes Pixel

Eine lineare Suche durch bis zu 4096 Adressen würde die Codierung verlangsamen

In der Praxis können die Codes in der Reihenfolge ihres numerischen Wertes gespeichert werden; Dadurch kann jede Suche durch ein SAR (Successive Approximation Register, wie es in einigen ADCs verwendet wird) mit nur 12 Größenvergleichen durchgeführt werden

Für diese Effizienz wird eine zusätzliche Tabelle benötigt, um zwischen Codes und tatsächlichen Speicheradressen umzuwandeln; Die zusätzliche Tabellenpflege ist nur erforderlich, wenn ein neuer Code gespeichert wird, was mit viel weniger als der Pixelrate geschieht

Bilddecodierung [ bearbeiten ]

Die Dekodierung beginnt mit der Rückabbildung der gespeicherten Bytes auf 9-Bit-Codes

Diese werden decodiert, um die Pixelfarben wie unten gezeigt wiederherzustellen

Eine Tabelle, die mit der im Encoder verwendeten identisch ist, wird durch Hinzufügen von Zeichenfolgen nach dieser Regel erstellt:

Wird eingehender Code in der Tabelle gefunden? Ja Zeichenfolge für lokalen Code hinzufügen, gefolgt vom ersten Byte der Zeichenfolge für eingehenden Code Nein Zeichenfolge für lokalen Code hinzufügen, gefolgt von einer Kopie des eigenen ersten Bytes

Verschiebung 9-Bit —-> Lokale Tabelle Pixelcode Codecode –> Zeichenfolge Palettenfarbe Aktion 100h 000h | #0 Root-Tabelle mit 9-Bit-Codes initialisieren: | Palette : | Farben 0FFh | #255 100h | clr 101h | Ende 028h | #40 SCHWARZ Erstes Pixel decodieren 0FFh 028h | Eingehender Code in Tabelle | gefunden #255 WHITE – Ausgabestring aus Tabelle 102h | 28 FF – zur Tabelle hinzufügen 103h 0FFh | Eingehender Code in Tabelle 103h nicht gefunden | FF FF – zur Tabelle hinzufügen | – Ausgabestring aus Tabelle | #255 WEISS | #255 WEISS 102h 103h | Eingehender Code in Tabelle | gefunden – Ausgabestring aus Tabelle | #40 SCHWARZ | #255 WEISS 104h | FF FF 28 – zur Tabelle hinzufügen 103h 102h | Eingehender Code in Tabelle | gefunden – Ausgabestring aus Tabelle | #255 WEISS | #255 WEISS 105h | 28 FF FF – zur Tabelle hinzufügen 106h 103h | Eingehender Code in Tabelle 106h nicht gefunden | FF FF FF – zur Tabelle hinzufügen | – Ausgabestring aus Tabelle | #255 WEISS | #255 WEISS | #255 WEISS 107h 106h | Eingehender Code in Tabelle 107h nicht gefunden | FF FF FF FF – zur Tabelle hinzufügen | – Ausgabestring aus Tabelle | #255 WEISS | #255 WEISS | #255 WEISS | #255 WEISS 101h | Ende

LZW-Codelängen [ bearbeiten ]

Kürzere Codelängen können für Paletten verwendet werden, die kleiner als die 256 Farben in dem Beispiel sind

See also  The Best gesellenprüfung tischler übungsaufgaben Update

Wenn die Palette nur 64 Farben umfasst (also Farbindizes 6 Bit breit sind), können die Symbole von 0 bis 63 reichen, und die Symbolbreite kann mit 6 Bit angenommen werden, wobei Codes bei 7 Bit beginnen

Tatsächlich muss die Symbolbreite nicht mit der Palettengröße übereinstimmen: Solange die decodierten Werte immer kleiner sind als die Anzahl der Farben in der Palette, können die Symbole jede Breite von 2 bis 8 und die Palettengröße jede Potenz haben von 2 von 2 bis 256

Wenn beispielsweise nur die ersten vier Farben (Werte 0 bis 3) der Palette verwendet werden, können die Symbole als 2 Bit breit angenommen werden, wobei Codes bei 3 Bit beginnen

die Symbolbreite könnte auf 8 eingestellt werden, auch wenn nur die Werte 0 und 1 verwendet werden; diese Daten würden nur eine zweifarbige Tabelle erfordern

Obwohl es keinen Sinn machen würde, die Datei so zu codieren, passiert etwas Ähnliches typischerweise bei zweifarbigen Bildern: Die minimale Symbolbreite ist 2, auch wenn nur die Werte 0 und 1 verwendet werden

Die Codetabelle enthält zunächst Codes, die sind ein Bit länger als die Symbolgröße, um die beiden speziellen Codes clr und end und Codes für Zeichenfolgen aufzunehmen, die während des Prozesses hinzugefügt werden

Wenn die Tabelle voll ist, erhöht sich die Codelänge, um Platz für mehr Zeichenketten zu schaffen, bis zu einem maximalen Code 4095 = FFF(hex)

Während der Decoder seine Tabelle erstellt, verfolgt er diese Zunahmen der Codelänge und kann eingehende Bytes entsprechend entpacken

Unkomprimiertes GIF [Bearbeiten]

Ein 46×46 unkomprimiertes GIF mit 7-Bit-Symbolen (128 Farben, 8-Bit-Codes)

Klicken Sie auf das Bild, um eine Erläuterung des Codes zu erhalten

Der GIF-Kodierungsprozess kann geändert werden, um eine Datei ohne LZW-Komprimierung zu erstellen, die immer noch als GIF-Bild angezeigt werden kann

Diese Technik wurde ursprünglich eingeführt, um Patentverletzungen zu vermeiden

Unkomprimiertes GIF kann auch ein nützliches Zwischenformat für einen Grafikprogrammierer sein, da einzelne Pixel zum Lesen oder Malen zugänglich sind

Eine unkomprimierte GIF-Datei kann in eine normale GIF-Datei konvertiert werden, indem sie einfach durch einen Bildeditor geleitet wird

Die modifizierte Codierungsmethode ignoriert das Erstellen der LZW-Tabelle und gibt nur die Root-Palettencodes und die Codes für CLEAR und STOP aus

Dies ergibt eine einfachere Codierung (eine 1-zu-1-Entsprechung zwischen Codewerten und Palettencodes), opfert jedoch die gesamte Komprimierung: Jedes Pixel im Bild generiert einen Ausgabecode, der seinen Farbindex angibt

Bei der Verarbeitung eines unkomprimierten GIF wird ein Standard-GIF-Decoder nicht daran gehindert, Zeichenfolgen in seine Wörterbuchtabelle zu schreiben, aber die Codebreite darf niemals zunehmen, da dies ein anderes Packen von Bits in Bytes auslöst

Wenn die Symbolbreite n ist, werden die Codes der Breite n+1 fallen natürlicherweise in zwei Blöcke: den unteren Block von 2n Codes zum Codieren einzelner Symbole und den oberen Block von 2n Codes, die von dem Decoder für Sequenzen mit einer Länge größer als eins verwendet werden

Von diesem oberen Block sind die ersten beiden Codes bereits belegt: 2n für CLEAR und 2n + 1 für STOP

Der Decoder muss auch daran gehindert werden, den letzten Code im oberen Block, 2n+1 − 1, zu verwenden, da der Decoder, wenn er diesen Schlitz füllt, die Codebreite erhöht

Somit stehen dem Decoder im oberen Block 2n − 3 Codes zur Verfügung, die keine Erhöhung der Codebreite auslösen

Da der Decodierer beim Führen der Tabelle immer einen Schritt hinterherhinkt, erzeugt er beim Empfang des ersten Codes vom Codierer keinen Tabelleneintrag, sondern einen für jeden nachfolgenden Code

Somit kann der Encoder 2n − 2 Codes erzeugen, ohne eine Erhöhung der Codebreite auszulösen

Daher muss der Codierer zusätzliche CLEAR-Codes in Intervallen von 2n – 2 Codes oder weniger aussenden, damit der Decodierer das Codierwörterbuch zurücksetzt

Der GIF-Standard erlaubt es, solche zusätzlichen CLEAR-Codes jederzeit in die Bilddaten einzufügen

Der zusammengesetzte Datenstrom wird in Unterblöcke unterteilt, die jeweils 1 bis 255 Bytes tragen.

Für das obige 3×5-Beispielbild repräsentieren die folgenden 9-Bit-Codes „clear“ (100), gefolgt von Bildpixeln in Scanreihenfolge und „stop“ (101)

100 028 0FF 0FF 0FF 028 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 101

Nachdem die obigen Codes auf Bytes abgebildet wurden, unterscheidet sich die unkomprimierte Datei von der komprimierten Datei wie folgt:

Byte # (hex) Hexadezimal Text oder Wert Bedeutung 320 14 20 20 Byte unkomprimierte Bilddaten folgen 321 00 51 FC FB F7 0F C5 BF 7F FF FE FD FB F7 EF DF BF 7F 01 01 335 00 0 Ende der Bilddaten

Komprimierungsbeispiel[Bearbeiten]

Das triviale Beispiel eines großen Volltonbilds demonstriert die LZW-Komprimierung mit variabler Länge, die in GIF-Dateien verwendet wird N i (N i + 1)/2 Beziehungen, die N i verwenden, gelten nur für gleichfarbige Pixel, bis die Codiertabelle voll ist

0 100h 9 Codetabelle löschen 1 FFh 1 1 Pixelfarbe oben links, ausgewählt als höchster Index einer 256-Farben-Palette 2 102h 2 3 3 ⋮ 255 103h ⋮ 1FFh 3 ⋮ 255 6 ⋮ 32640 Letzter 9-Bit-Code 256 ⋮ 767 200h ⋮ 3FFH 10.256 ⋮ 767 32896 ⋮ 294,528 Last 10-Bit-Code 768 ⋮ 1791 400h ⋮ 7FFH 11 768 ⋮ 1791 295 296 ⋮ 1,604,736 Last 11-Bit-Code 1792 ⋮ 3839 800h ⋮ FFFH 12 1792 ⋮ 3839 1,606,528 ⋮ 7370880 Codtabelle voll ⋮ FFFHH 3839 Der maximale Code kann sich für mehr gleichfarbige Pixel wiederholen

Die Gesamtdatenkomprimierung nähert sich asymptotisch 3839 × 8/12 = 2559 + 1/3 101h Ende der Bilddaten

Die angezeigten Codewerte werden in Bytes gepackt, die dann in Blöcke von bis zu 255 Bytes gepackt werden

Ein Bilddatenblock beginnt mit einem Byte, das die Anzahl der folgenden Bytes angibt

Der letzte Datenblock für ein Bild wird durch ein Byte mit der Blocklänge Null markiert

Interlacing [Bearbeiten]

Die GIF-Spezifikation ermöglicht es jedem Bild innerhalb des logischen Bildschirms einer GIF-Datei anzugeben, dass es interlaced ist; das heißt, dass die Reihenfolge der Rasterlinien in ihrem Datenblock nicht sequentiell ist

Dies ermöglicht eine teilweise Anzeige des Bildes, die erkannt werden kann, bevor das vollständige Bild gemalt wird

Durchgang 1: Linie 0 (die oberste Linie) von jedem Streifen

Durchgang 2: Linie 4 von jedem Streifen

Durchgang 3: Zeilen 2 und 6 von jedem Streifen

Durchgang 4: Zeilen 1, 3, 5 und 7 von jedem Streifen

Die Pixel innerhalb jeder Zeile werden nicht verschachtelt, sondern nacheinander von links nach rechts präsentiert

Wie bei Bildern ohne Zeilensprung gibt es keine Unterbrechung zwischen den Daten für eine Zeile und den Daten für die nächste

Der Indikator, dass ein Bild interlaced ist, ist ein Bit, das im entsprechenden Bildbeschreibungsblock gesetzt ist

Animiertes GIF [ bearbeiten ]

GIF kann verwendet werden, um Animationen anzuzeigen, wie in diesem Bild von Newtons Wiege

Eine GIF-Animation aus zwei Fotos, die sich ineinander verwandeln

Ein einfaches GIF mit drei Bildern von Tauben, die sich endlos wiederholen

Obwohl GIF nicht als Animationsmedium konzipiert wurde, legte seine Fähigkeit, mehrere Bilder in einer Datei zu speichern, nahe, das Format zum Speichern der Frames einer Animationssequenz zu verwenden

Um die Anzeige von Animationen zu erleichtern, hat die GIF89a-Spezifikation die Graphic Control Extension (GCE) hinzugefügt, die es ermöglicht, die Bilder (Frames) in der Datei mit Zeitverzögerungen zu malen und einen Videoclip zu bilden

Jeder Frame in einem Animations-GIF wird von einem eigenen GCE eingeführt, das die Zeitverzögerung angibt, die nach dem Zeichnen des Frames gewartet werden soll

Globale Informationen am Anfang der Datei gelten standardmäßig für alle Frames

Die Daten sind stromorientiert, sodass der Datei-Offset des Beginns jedes GCE von der Länge der vorhergehenden Daten abhängt

Innerhalb jedes Rahmens sind die LZW-codierten Bilddaten in Unterblöcken von bis zu 255 Byte angeordnet; die Größe jedes Unterblocks wird durch das vorangehende Byte deklariert.

Standardmäßig zeigt eine Animation die Bildfolge nur einmal an und stoppt, wenn das letzte Bild angezeigt wird

Um eine Schleife einer Animation zu ermöglichen, verwendete Netscape in den 1990er Jahren den Anwendungserweiterungsblock (der es Anbietern ermöglichen sollte, anwendungsspezifische Informationen zur GIF-Datei hinzuzufügen), um den Netscape Application Block (NAB) zu implementieren

Dieser Block, der unmittelbar vor der Folge von Animationsbildern platziert ist, gibt an, wie oft die Folge von Bildern abgespielt werden soll (1 bis 65535 Mal) oder dass sie kontinuierlich wiederholt werden soll (Null bedeutet Endlosschleife)

Die Unterstützung für diese sich wiederholenden Animationen erschien zuerst in Netscape Navigator Version 2.0 und breitete sich dann auf andere Browser aus.[35] Die meisten Browser erkennen und unterstützen jetzt NAB, obwohl es nicht unbedingt Teil der GIF89a-Spezifikation ist

Das folgende Beispiel zeigt die Struktur der Animationsdatei Rotating earth (large).gif, die (als Miniaturbild) in der Infobox des Artikels angezeigt wird

Struktur of GIF Byte # (hex) Hexadezimal Text oder Wert Bedeutung 0 47 49 46 38 39 61 GIF89a Logical Screen Descriptor 6 90 01 400 Breite in Pixel 8 90 01 400 Höhe in Pixel Es folgt ein F7 GCT für 256 Farben mit einer Auflösung von 3 × 8 Bit /primary B 00 0 Hintergrundfarbe: #000000, schwarz C 00 0 Standard-Pixel-Seitenverhältnis, 0:0 D 00 Globale Farbtabelle ⋮ 30D 21 FF Anwendungserweiterung 30F 0B 11 Größe des Blocks einschließlich Anwendungsname und Prüfbytes (immer 11) 310 4E 45 54 53 43 41 50 45 32 2E 30 NETSCAPE2.0 8 Byte Applikationsname plus 3 Prüfbytes 31B 03 3 Anzahl Bytes im folgenden Unterblock 31C 01 1 Index des aktuellen Datenunterblocks (immer 1 für den NETSCAPE-Block) 31D FF FF 65535 Anzahl der Wiederholungen ohne Vorzeichen 31F 00 Ende der Subblockkette für den Application Extension Block 320 21 F9 Graphic Control Extension für Frame #1 322 04 4 Anzahl der Bytes (4) im aktuellen Subblock 323 04 000….

…001.

……0

…….0 (zum leichteren Lesen in Abschnitte unterteilt) Reserviert, 5 niedrigere Bits sind Bitfelder

Entsorgungsmethode 1: Nicht entsorgen

Keine Benutzereingabe

Transparente Farbe, 0 bedeutet nicht gegeben 324 09 00 9 Frame-Verzögerung: 0,09 Sekunden Verzögerung vor dem Malen des nächsten Frames 326 FF Transparenter Farbindex (in diesem Frame nicht verwendet) 327 00 Ende der Unterblockkette für Grafiksteuerungs-Erweiterungsblock 328 2C Image Descriptor of Frame Nr

1 329 00 00 00 00 (0, 0) Nordwestliche Eckposition des Bildes im logischen Bildschirm: (0, 0) 32D 90 01 90 01 (400, 400) Framebreite und -höhe: 400 × 400 Pixel 331 00 0 Lokale Farbtabelle: 0 bedeutet kein & kein Interlacing 332 08 8 Mindestgröße des LZW-Codes für Bilddaten von Frame Nr

1 333 FF 255 Anzahl der Bytes der LZW-Bilddaten im folgenden Unterblock: 255 Bytes 334. .

Bilddaten, 255 Bytes 433 FF 255 Anzahl Bytes der LZW-Bilddaten im folgenden Unterblock, 255 Bytes 434. .

Bilddaten, 255 Bytes ⋮ Wiederholen für die nächsten Blöcke 92C0 00 Ende des Unter- Blockkette für diesen Frame 92C1 21 F9 Graphic Control Extension für Frame #2 ⋮ Wiederholen für die nächsten Frames EDABD 21 F9 Graphic Control Extension für Frame #44 ⋮ Image informati on und Daten für Frame #44 F48F5 3B Trailer: Letztes Byte in der Datei, signalisiert EOF

Die Animationsverzögerung für jeden Frame wird im GCE in Hundertstelsekunden angegeben

Eine gewisse Dateneinsparung ist möglich, wenn ein Rahmen nur einen Teil der Pixel der Anzeige neu schreiben muss, weil der Bilddeskriptor anstelle des gesamten Bildes ein kleineres Rechteck definieren kann, das neu abgetastet werden soll

Browser oder andere Displays, die animierte GIFs nicht unterstützen, zeigen normalerweise nur das erste Bild an.

Die Größe und Farbqualität von animierten GIF-Dateien kann je nach Anwendung, mit der sie erstellt wurden, erheblich variieren

Strategien zum Minimieren der Dateigröße umfassen die Verwendung einer gemeinsamen globalen Farbtabelle für alle Frames (anstatt einer vollständigen lokalen Farbtabelle für jeden Frame) und die Minimierung der Anzahl der Pixel, die in aufeinanderfolgenden Frames abgedeckt werden (so dass sich nur die Pixel ändern, die sich von einem Frame zum anderen ändern next sind im letzteren Rahmen enthalten)

Fortgeschrittenere Techniken umfassen das Modifizieren von Farbsequenzen, um sie besser an das vorhandene LZW-Wörterbuch anzupassen, eine Form der verlustbehafteten Komprimierung

See also  The Best wbfs partition erstellen Update New

Das einfache Packen einer Reihe unabhängiger Rahmenbilder in eine zusammengesetzte Animation führt tendenziell zu großen Dateigrößen

Es stehen Tools zur Verfügung, um die Dateigröße bei einem vorhandenen GIF zu minimieren

Metadaten [ bearbeiten ]

Metadaten können in GIF-Dateien als Kommentarblock, einfacher Textblock oder anwendungsspezifischer Anwendungserweiterungsblock gespeichert werden

Mehrere Grafikeditoren verwenden inoffizielle Anwendungserweiterungsblöcke, um die zum Generieren des Bildes verwendeten Daten einzuschließen, damit sie für die weitere Bearbeitung wiederhergestellt werden können

Alle diese Methoden erfordern technisch gesehen, dass die Metadaten in Unterblöcke aufgeteilt werden, damit Anwendungen darin navigieren können Metadatenblock, ohne seine interne Struktur zu kennen

Der Metadatenstandard Extensible Metadata Platform (XMP) führte einen inoffiziellen, aber jetzt weit verbreiteten Anwendungserweiterungsblock „XMP Data“ ein, um XMP-Daten in GIF-Dateien aufzunehmen.[36] Da die XMP-Daten mit UTF-8 ohne NUL-Zeichen codiert sind, gibt es keine 0-Bytes in den Daten

Anstatt die Daten in formelle Unterblöcke aufzuteilen, endet der Erweiterungsblock mit einem „magischen Trailer“, der jede Anwendung, die die Daten als Unterblöcke behandelt, zu einem abschließenden 0-Byte weiterleitet, das die Unterblockkette abschließt

Patent von Unisys und LZW Durchsetzung[Bearbeiten]

In den Jahren 1977 und 1978 veröffentlichten Jacob Ziv und Abraham Lempel zwei Artikel über eine neue Klasse von verlustfreien Datenkomprimierungsalgorithmen, die jetzt gemeinsam als LZ77 und LZ78 bezeichnet werden

1983 entwickelte Terry Welch eine schnelle Variante von LZ78 mit dem Namen Lempel-Ziv-Welch (LZW).[37][38]

Welch reichte im Juni 1983 eine Patentanmeldung für das LZW-Verfahren ein

Das daraus resultierende Patent, US4558302,[39] erteilt im Dezember 1985, wurde der Sperry Corporation übertragen, die anschließend 1986 mit der Burroughs Corporation fusionierte und Unisys gründete.[37] Weitere Patente wurden in Großbritannien, Frankreich, Deutschland, Italien, Japan und Kanada erteilt

Zusätzlich zu den oben genannten Patenten enthält das Patent von Welch aus dem Jahr 1983 auch Zitate zu mehreren anderen Patenten, die es beeinflusst haben, darunter zwei japanische Patente aus dem Jahr 1980 von Jun Kanatsu von NEC, das US-Patent 4,021,782 (1974) von John S

Hoerning

Patent 4,366,551 (1977) von Klaus E

Holtz und ein deutsches Patent von 1981 von Karl Eckhart Heinz[42]. [43]

Im Juni 1984 wurde ein Artikel von Welch im IEEE-Magazin veröffentlicht, der die LZW-Technik zum ersten Mal öffentlich beschrieb.[44] LZW wurde zu einer beliebten Datenkomprimierungstechnik und als das Patent erteilt wurde, ging Unisys Lizenzvereinbarungen mit über hundert Unternehmen ein.[37][45]

Die Popularität von LZW veranlasste CompuServe dazu, es als Komprimierungstechnik für ihre 1987 entwickelte Version von GIF zu wählen

Damals war sich CompuServe des Patents nicht bewusst.[37] Unisys wurde darauf aufmerksam, dass die Version von GIF die LZW-Komprimierungstechnik verwendete, und nahm im Januar 1993 Lizenzverhandlungen mit CompuServe auf

Die anschließende Vereinbarung wurde am 24

Dezember 1994 bekannt gegeben.[38] Unisys erklärte, dass sie von allen großen kommerziellen Online-Informationsdienstleistungsunternehmen, die das LZW-Patent verwenden, erwarteten, die Technologie von Unisys zu einem angemessenen Preis zu lizenzieren, dass sie jedoch keine Lizenzierung oder Zahlung von Gebühren für nicht-kommerzielle, nicht-kommerzielle profit GIF-basierte Anwendungen, einschließlich solcher zur Verwendung in Online-Diensten.[45]

Nach dieser Ankündigung gab es eine weit verbreitete Verurteilung von CompuServe und Unisys, und viele Softwareentwickler drohten damit, die Verwendung von GIF einzustellen

Das PNG-Format (siehe unten) wurde 1995 als beabsichtigter Ersatz entwickelt.[37][38][44] Es erwies sich jedoch als schwierig, Unterstützung von den Herstellern von Webbrowsern und anderer Software für das PNG-Format zu erhalten, und es war nicht möglich, GIF zu ersetzen, obwohl PNG allmählich an Popularität gewonnen hat.[37] Daher wurden GIF-Varianten ohne LZW-Komprimierung entwickelt

Zum Beispiel ermöglicht die libungif-Bibliothek, die auf Eric S

Raymonds giflib basiert, die Erstellung von GIFs, die dem Datenformat folgen, aber die Komprimierungsfunktionen vermeiden, wodurch die Verwendung des Unisys LZW-Patents vermieden wird.[46] Ein Artikel von Dr

Dobb aus dem Jahr 2001 beschrieb eine weitere Alternative zur LZW-Komprimierung, basierend auf Quadratwurzeln.[47] Im August 1999 änderte Unisys die Einzelheiten seiner Lizenzierungspraxis und kündigte die Option für Eigentümer bestimmter nichtkommerzieller und privater Websites an, Lizenzen gegen Zahlung einer einmaligen Lizenzgebühr von 5000 oder 7500 US-Dollar zu erwerben.[48] Solche Lizenzen waren für Websitebesitzer oder andere GIF-Benutzer, die lizenzierte Software zum Generieren von GIFs verwendet hatten, nicht erforderlich

Dennoch war Unisys Tausenden von Online-Angriffen und missbräuchlichen E-Mails von Benutzern ausgesetzt, die glaubten, dass ihnen 5000 US-Dollar in Rechnung gestellt oder verklagt würden, weil sie GIFs auf ihren Websites verwenden.[49] Trotz der Vergabe kostenloser Lizenzen an Hunderte von gemeinnützigen Organisationen, Schulen und Regierungen war Unisys völlig unfähig, eine gute Publicity zu erzeugen, und wurde weiterhin von Einzelpersonen und Organisationen wie der League for Programming Freedom verurteilt, die die Kampagne „Burn All GIFs“ startete im Jahr 1999.[50][51]

Das LZW-Patent der Vereinigten Staaten lief am 20

Juni 2003 aus.[52] Die entsprechenden Patente in Großbritannien, Frankreich, Deutschland und Italien liefen am 18

Juni 2004 aus, die japanischen Patente liefen am 20

Juni 2004 aus und das kanadische Patent lief am 7

Juli 2004 aus.[52] Obwohl Unisys über weitere Patente und Patentanmeldungen in Bezug auf Verbesserungen der LZW-Technik verfügt,[52] kann LZW selbst (und folglich GIF) seit Juli 2004 kostenlos verwendet werden.[53]

Alternativen[Bearbeiten]

PNG[Bearbeiten]

Portable Network Graphics (PNG) wurde als Ersatz für GIF entwickelt, um eine Verletzung des Patents von Unisys auf die LZW-Komprimierungstechnik zu vermeiden.[37] PNG bietet eine bessere Komprimierung und mehr Funktionen als GIF,[54] Animationen sind die einzige bedeutende Ausnahme

PNG ist besser geeignet als GIF in Fällen, in denen True-Color-Bildgebung und Alpha-Transparenz erforderlich sind

Obwohl die Unterstützung für das PNG-Format langsam kam, unterstützen neue Webbrowser PNG

Ältere Versionen von Internet Explorer unterstützen nicht alle Funktionen von PNG

Versionen 6 und früher unterstützen keine Alphakanal-Transparenz, ohne Microsoft-spezifische HTML-Erweiterungen zu verwenden.[55] Die Gammakorrektur von PNG-Bildern wurde vor Version 8 nicht unterstützt, und die Anzeige dieser Bilder in früheren Versionen hat möglicherweise den falschen Farbton.[56]

Bei identischen 8-Bit-Bilddaten (oder niedriger) sind PNG-Dateien aufgrund der effizienteren Komprimierungstechniken, die bei der PNG-Codierung verwendet werden, normalerweise kleiner als die entsprechenden GIFs.[57] Die vollständige Unterstützung für GIF wird hauptsächlich durch die komplexe Leinwandstruktur erschwert, obwohl dies die kompakten Animationsfunktionen ermöglicht

Animationsformate [ bearbeiten ]

Videos lösen viele Probleme, die GIFs durch die allgemeine Verwendung im Web darstellen

Dazu gehören drastisch kleinere Dateigrößen, die Möglichkeit, die 8-Bit-Farbbeschränkung zu überwinden, und eine bessere Frame-Verarbeitung und Komprimierung durch Codecs

Die praktisch universelle Unterstützung des GIF-Formats in Webbrowsern und ein Mangel an offizieller Unterstützung für Videos im HTML-Standard führten dazu, dass GIF zum Zweck der Anzeige kurzer videoähnlicher Dateien im Internet an Bedeutung gewann

MNG (“Multiple-image Network Graphics”) wurde ursprünglich als PNG-basierte Lösung für Animationen entwickelt

MNG erreichte 2001 Version 1.0, aber nur wenige Anwendungen unterstützen es.

2006 wurde von Mozilla eine Erweiterung des PNG-Formats namens APNG (“Animated Portable Network Graphics”) als Alternative zum MNG-Format vorgeschlagen

APNG wird seit 2019 von den meisten Browsern unterstützt.[58] APNG bietet die Möglichkeit, PNG-Dateien zu animieren, während die Abwärtskompatibilität in Decodern erhalten bleibt, die den Animationsblock nicht verstehen können (im Gegensatz zu MNG)

Ältere Decoder rendern einfach den ersten Frame der Animation

Die PNG-Gruppe lehnte APNG am 20

April 2007 offiziell als offizielle Verlängerung ab.[59] Es gab mehrere nachfolgende Vorschläge für ein einfaches animiertes Grafikformat auf der Grundlage von PNG mit mehreren unterschiedlichen Ansätzen.[60] Trotzdem befindet sich Animated Portable Network Graphics noch in der Entwicklung von Mozilla und wird in Firefox 3[61][62] unterstützt, während die MNG-Unterstützung eingestellt wurde.[63][64] APNG wird derzeit von allen gängigen Webbrowsern unterstützt, einschließlich Chrome seit Version 59.0 und Opera sowie Firefox und Edge

Eingebettete Adobe Flash-Objekte und MPEG-Dateien wurden auf einigen Websites verwendet, um einfache Videos anzuzeigen, erforderten jedoch die Verwendung eines zusätzlichen Browser-Plugins

WebM und WebP befinden sich in der Entwicklung und werden von einigen Webbrowsern unterstützt.[65] Andere Optionen für die Webanimation umfassen das Bereitstellen einzelner Frames mit AJAX oder das Animieren von SVG-Bildern mit JavaScript oder SMIL (“Synchronized Multimedia Integration Language”)

[Zitat erforderlich]

Mit der Einführung der weit verbreiteten Unterstützung des HTML5-Video-Tags (

Dies sieht aus wie ein GIF, aber mit den Größen- und Geschwindigkeitsvorteilen eines komprimierten Videos

Bemerkenswerte Beispiele sind Gfycat und Imgur und ihr GIFV-Metaformat, das eigentlich ein Video-Tag ist, das ein MP4- oder WebM-komprimiertes Video in Schleife abspielt.[66]

High Efficiency Image File Format (HEIF) ist ein Bilddateiformat, das 2015 fertiggestellt wurde und einen verlustbehafteten Komprimierungsalgorithmus mit diskreter Kosinustransformation (DCT) verwendet, der auf dem HEVC-Videoformat basiert und mit dem JPEG-Bildformat verwandt ist

Im Gegensatz zu JPEG unterstützt HEIF Animationen.[67] Im Vergleich zum GIF-Format, dem die DCT-Komprimierung fehlt, ermöglicht HEIF eine deutlich effizientere Komprimierung

HEIF speichert mehr Informationen und erzeugt qualitativ hochwertigere animierte Bilder mit einem kleinen Bruchteil der Größe eines äquivalenten GIF.[68]

VP9 unterstützt nur Alpha-Compositing mit 4:2:0-Chroma-Subsampling[69] im YUVA420-Pixelformat, das für GIFs, die Transparenz mit gerasterten Vektorgrafiken mit feinen Farbdetails kombinieren, möglicherweise ungeeignet ist

Der AV1-Codec kann auch als verwendet werden ein Video oder ein sequenziertes Bild.

Verwendet [Bearbeiten]

Im April 2014 fügte 4chan Unterstützung für stille WebM-Videos hinzu, die weniger als 3 MB groß und 2 Minuten lang sind,[70][71] und im Oktober 2014 begann Imgur damit, alle auf die Website hochgeladenen GIF-Dateien in Videos umzuwandeln und die Link zum HTML-Player das Aussehen einer tatsächlichen Datei mit einer. gifv-Erweiterung.[72][73]

Im Januar 2016 begann Telegram damit, alle GIFs in MPEG-4-Videos umzucodieren, die „bei gleicher Bildqualität bis zu 95 % weniger Speicherplatz benötigen“[74]

Siehe auch[Bearbeiten]

Come inserire video e GIF animate nei documenti DOCX di Word New

Video unten ansehen

Neue Informationen zum Thema word to gif

word to gif Einige Bilder im Thema

 Update Come inserire video e GIF animate nei documenti DOCX di Word
Come inserire video e GIF animate nei documenti DOCX di Word Update

Save a picture or other graphic as a separate file New Update

In PowerPoint, Word, and Excel, the following procedure works for photos, shapes, charts, SmartArt graphics, digital ink, and text boxes. In Outlook, the following procedure only works for photos. Right-click the illustration that you want to save as a separate image file, and then click Save as Picture.

+ hier mehr lesen

Read more

Speichern Sie ein Bild als separate Datei

In PowerPoint, Word und Excel funktioniert das folgende Verfahren für Fotos, Formen, Diagramme, SmartArt-Grafiken, digitale Tinte und Textfelder

In Outlook funktioniert das folgende Verfahren nur für Fotos.

Microsoft Word: come inserire una GIF animata come sfondo 2021 New

Video unten ansehen

Weitere hilfreiche Informationen im Thema anzeigen word to gif

word to gif Ähnliche Bilder im Thema

 Update Microsoft Word: come inserire una GIF animata come sfondo 2021
Microsoft Word: come inserire una GIF animata come sfondo 2021 Update

Weitere Informationen zum Thema word to gif

图片转GIF-JPG转GIF动态图片-GIF制作软件-改图鸭 Aktualisiert

图片转gif在线免费工具可以帮助用户快速将图片转换为gif动态图片,jpg、png等格式的图片均可转换为gif,改图鸭图片转gif软件是一款非常好用的在线免费版gif生成工具.

+ hier mehr lesen

Come inserire video e GIF animate nei documenti DOCX di Word New

Video unten ansehen

Neue Informationen zum Thema word to gif

word to gif Einige Bilder im Thema

 Update Come inserire video e GIF animate nei documenti DOCX di Word
Come inserire video e GIF animate nei documenti DOCX di Word Update

Free JPG Word Converter – Convert JPG to DOC for Free Update

Convert Between JPG and Word Document in Seconds. Aiseesoft Free JPG Word Converter is a fast, free and efficient converter, that converts JPG to Word documents in any of your browser (Chrome, Safari, Edge, and Firefox). The JPG image can be converted to Word documents (.doc, .docx) in a few seconds for further editing, modifying or searching.

+ mehr hier sehen

Come convertire VIDEO in GIF, Tutorial. Spiegato Semplice! New Update

Video ansehen

Neues Update zum Thema word to gif

word to gif Einige Bilder im Thema

 New Come convertire VIDEO in GIF, Tutorial. Spiegato Semplice!
Come convertire VIDEO in GIF, Tutorial. Spiegato Semplice! Update New

Schlüsselwörter zum Thema word to gif

Updating

Sie haben gerade den Thementitel angesehen word to gif

Articles compiled by Tratamientorosacea.com. See more articles in category: DIGITAL MARKETING

Related Videos

Leave a Comment