Warum wird ein GIF größer, wenn ich ein Logo hinzufüge, obwohl die Anzahl der Farben gleich bleibt?

Ich habe ein animiertes GIF, das etwa 2 MB groß ist. Wenn ich es in Photoshop CS 5 öffne, eine Ebene mit einem Logo hinzufüge und es dann für das Web speichere, ist es plötzlich 4 MB groß.

Wieso den? Es gibt nicht mehr Farben oder so, warum nimmt die Größe zu?

Das fragliche Bild ist NSFW und ich kann es hier nicht posten.

Klingt so, als ob die Anzahl der Frames irgendwie zunimmt - haben Sie die Anzahl der Frames in der Ausgabe überprüft?

Antworten (5)

Die Farbnummer ist nur die halbe Miete. Die andere besteht darin, das Bild nach der Farbreduktion zu komprimieren. Diese verlustfreie Komprimierung sucht nach wiederholten Mustern in Scanline-Reihenfolge.

Lange Rede, kurz: Wenn Sie das Logo hinzufügen, erhöhen Sie die Bildvariabilität, die Entropie. Je mehr Entropie im Bild vorhanden ist, desto schlechter wird die Komprimierung, da der Computer nicht mehr so ​​viele sich wiederholende Muster finden kann. Wenn Sie also die Komplexität des Bildes verdoppeln, verdoppelt sich grob gesagt Ihre Dateigröße.

Kleine Spitzfindigkeit: Das Hinzufügen eines Logos erhöht nicht "automatisch" die Bildvariabilität (stellen Sie sich vor, Sie fügen ein einfarbiges Logo über einem komplizierten Bild hinzu). Da man erraten muss, wie OP-Bilder aussehen, ist dies jedoch die wahrscheinlichste Erklärung.
@RadLexus Nein, es ist sicherlich möglich, auf magische Weise ohne Erhöhung der Dateigröße zu enden. Aber im Allgemeinen erhöht das Hinzufügen von Dingen zu einem Bild die Komplexität, was die Tendenz hat, die Entropie zu erhöhen. Aber nein, es muss sicherlich nicht größer werden, aber wenn Sie es nicht so konstruiert haben, wird es höchstwahrscheinlich nicht so sein.
Nein, es erfordert keine Magie oder spezielle Technik, um die Größe zu reduzieren. Der Punkt, den @RadLexus macht, ist, dass Sie, wenn Sie etwas zu einem Bild hinzufügen, tatsächlich einen Teil des Bildes ersetzen . Wenn das Teil, das Sie ersetzen, eine höhere Entropie hat als das Teil, das Sie einsetzen, wird die Gesamtentropie (allgemein gesprochen) reduziert.
@Supr Ja das stimmt. Wenn Sie das Logo jedoch auf etwas platzieren, das nicht sehr beschäftigt ist, erhalten Sie den gegenteiligen Effekt. Im Allgemeinen möchten Sie kein Logo auf den belebtesten Teil eines Bildes kleben, da es sonst schwer zu lesen ist. Aber wir wissen nicht wirklich etwas anderes, als dass es mehr Platz verbraucht. Bitte beachten Sie: einfach auf komplex kann tatsächlich auch die Größe des komplexen Teils erhöhen, da für seine Bausteine ​​kein Platz mehr vorhanden ist.

Obwohl joojaa größtenteils korrekt ist, verwenden GIFs tatsächlich keine Run Length Encoding. Sie verwenden den LZW-Algorithmus .

Grundsätzlich kann dieser Algorithmus EXAKTE Wiederholungen von horizontalen Pixelstreifen nutzen. Dies funktioniert sehr gut für Volltonfarben und regelmäßige Dithering-Muster (z. B. Schachbrettmuster).

LZW kann sich jedoch nur 4096 verschiedene Pixelstreifen "merken". Je mehr Variationen in Ihrem Bild also vorhanden sind, desto kürzer sind diese Streifen im Durchschnitt und desto weniger Komprimierung erhalten Sie.

Fazit: Wenn Sie Ihr Logo vereinfachen (mehr Volltonfarben und regelmäßige Muster) oder gemeinsame Pixelstreifen aus dem Rest des Bildes in Ihrem Logo „ausleihen“ oder die Farben des Logos so ändern, dass sie häufiger vorkommen Beim Rest des Bildes sollte die Dateigröße reduziert werden.

Danke für den Beitrag und willkommen bei GraphicDesign! Lassen Sie uns wissen, wenn Sie Fragen haben
Fairer Anruf bzgl. RLE. Als Lösung habe ich einfach die Informationen aus meiner Antwort in die Antwort von joojaa eingefügt, dann meine Stimme von seiner/ihrer Antwort genommen und dir wiederum eine gegeben :)
Ja, ich sollte nichts posten, nachdem ich ins Bett gegangen bin. Wie auch immer, die genaue Zusammensetzung, wie der Algorithmus funktioniert, ist unwichtig. Habe diesen Abschnitt entfernt.
@LamarLatrell Entschuldigung für die Verwirrung, aber ich denke nicht, dass es in diesem Forum wichtig ist, wie die Komprimierung genau funktioniert. Allein das allgemeine Prinzip weniger wiederholter Muster führt zu einem größeren Bild, das viel einfacher im Denken anzuwenden ist. Weniger Text und verständlicheres Ergebnis.
Vergessen Sie nicht, dass die Komprimierung von GIF-Bildern dumm ist: Jeder Frame wird einzeln komprimiert, anstatt die Änderungen zwischen den Frames miteinander zu kombinieren. Effektiv ist es, als ob n Bilder in 1 geschoben würden.

Wie in anderen Antworten erwähnt, wird jede Variation auf dem Bild, die zuvor einheitlicher war, die Komprimierung pessimieren. Trotzdem glaube ich nicht, dass dies eine zweifache Steigerung für 2 MB ergeben würde (es sei denn, Ihr Logo ist buchstäblich so groß wie das Bild selbst).

Es könnte sein, dass das Originalbild maximal komprimiert und alle unnötigen Header-/Meta-Informationen entfernt wurden und PS viele eigene Sachen hinzugefügt oder keine maximale Komprimierung verwendet hat. Versuchen Sie, Ihr neues GIF durch ein Tool wie zu führen, gifsicleund sehen Sie, ob es hilft. Wenn Sie sich nicht wirklich für das Bildformat interessieren, können Sie pngout+ ausprobieren defloptund sehen, wie groß .png wird.

Es ist durchaus möglich, dass das Bild einige Metadaten enthält. Aber wenn wir spekulieren müssen, ist es vielleicht eine Animation, in der sogar ein kleines Logo mehrfach interagiert.

Zusätzlich zur normalen GIF-Komprimierung für jedes einzelne Bild können animierte GIFs optional mathematische Operationen zwischen dem nächsten Frame und dem bereits auf dem Bildschirm angezeigten Frame anwenden und kleinere Bilder in kleineren Bereichen auf der Bildleinwand platzieren.

Nehmen wir also an, Sie haben ein animiertes GIF mit 10 Frames und es ist ein schwarz-weißes Strichmännchen, das über die Leinwand läuft. Das erste Bild wäre vollständig, füllt die Leinwand aus und enthält alle erforderlichen Informationen, als wäre es ein eigenständiges GIF. Der nächste "Rahmen" besteht möglicherweise nur aus einem kleineren Kästchen, das nur den geänderten Bereich aktualisiert.

Bei videoanimierten Gifs ist dies komplizierter. Aufgrund von Dithering stellen Sie häufig fest, dass sich der gesamte Rahmen ändert, sodass er größer wird.

Einige GIF-Optimierungssoftware kann erhebliche Optimierungen vornehmen, wenn sie mit einer guten Videoquelle beginnt. Darüber hinaus kann die Software einige Kompromisse eingehen, um die Größe zu verbessern (zu verringern), jedoch durch Beeinträchtigung der Animation - beispielsweise durch möglicherweise schlechteres Dithering.

Wenn Sie jedoch mit einem solchen GIF beginnen und es auch nur geringfügig ändern, können Sie nicht unbedingt erwarten, dass die Software (in diesem Fall Photoshop) dieselben Optimierungen anwenden kann, da das ursprüngliche Quellvideo fehlt . Außerdem wird es möglicherweise nicht einmal intern so gespeichert, dass es das ursprüngliche GIF mit seinen Optimierungen neu erstellen kann. Versuchen Sie, das animierte GIF zu öffnen und es dann als neues animiertes GIF zu exportieren, ohne Änderungen vorzunehmen. Es ist möglich, dass die Größe einfach zunimmt, weil keine Optimierungen verwendet werden und jedes Vollbild gespeichert wird.

Sobald Sie die Frames ändern, werden Sie feststellen, dass die Größe trotz Optimierungen trotzdem zunimmt. Dies gilt insbesondere, wenn Sie einen Alphakanal verwenden und einen Teil des Logos durchsichtig oder als Wasserzeichen mit Lichtdurchlässigkeit verwenden.

Möglicherweise können Sie einige der Optimierungen wiederherstellen, indem Sie sie nach Photoshop durch eine GIF-Animationsoptimierungssoftware laufen lassen, und viele Leute tun dies sowieso, weil Photoshop Qualität und Pixelperfektion über Größe legt.

Die ideale Lösung besteht jedoch darin, das Originalvideo (nicht das GIF, sondern die Videodatei) zu nehmen, das Logo/Wasserzeichen anzuwenden und dann ein speziell für die Größenoptimierung entwickeltes GIF-Animationsprogramm für die Konvertierung zu verwenden. Überspringen Sie Photoshop vollständig.

Aufgrund der Größe des Bildes würde ich sagen, dass es sich um ein animiertes GIF handelt, und wie Adam Davis sagte, gibt es mehrere Möglichkeiten, animierte GIF-Bilder zu optimieren, als nur statische GIF-Bilder.

Jetzt bin ich kein Experte dafür, was genau Photoshop tut, aber es kann versuchen, eine GIF-Datei zu erstellen, in der die statische Logoebene über den Rest der Frames gelegt wird, wo dies insbesondere bei sehr geschäftigen Animationen, dh Filmclips, der Fall sein könnte Es ist besser, eine "zusammengefügte Animation" zu definieren, die aus einer Folge vollständiger Einzelbilder besteht, die nacheinander angezeigt werden.

Ich weiß nur, wie man das mit imagemagick macht, aber ich vermute, dass Sie in Photoshop die Logoebene über jedem Frame zusammenführen müssen, bevor Sie die Sequenz speichern.

Danke, @zelluv. Ja, es ist ein animiertes GIF. Ich habe versucht, das Logo mit jedem einzelnen Frame / jeder einzelnen Ebene zusammenzuführen, sodass keine separate Ebene vorhanden ist, aber die Dateigröße wurde nicht einmal um ein Byte geändert.