- Um die Geschwindigkeit eines animierten GIFs maximal zu erhöhen, muss der "Frame Delay" auf "20ms" statt auf "10ms" gesetzt werden. Warum ist das so?
- Seit GIF 89a werden Animationen unterstützt
- Für jedes Frame kann eine Verzögerung festgelegt werden
- Die Wartezeit vor dem Wechsel zum nächsten Frame wird in Hundertstelsekunden (10 ms) ausgedrückt
- Es sind Werte von 0 bis 0xffff möglich (eine Verzögerung von etwa 10 Minuten)
- Was passiert, wenn man 0 setzt? Die Spezifikation gibt keine genaue Antwort, nennt aber zwei Punkte
- Beim Dekodieren eines GIFs muss jedes Frame ohne Verzögerung verarbeitet werden
- Der Verzögerungswert wird nur verwendet, wenn er nicht 0 ist
- Das heißt: Wenn 0 gesetzt ist, sollte es „mit dem vorherigen Frame kombiniert und als statisches Bild verarbeitet“ werden
- So lassen sich Frames speichern, die nur die bewegten Bereiche enthalten, um die Dateigröße zu reduzieren
- Das Problem ist, dass niemand eine Verzögerung von 0 unterstützt
→ Die meisten Programme mit GIF-Unterstützung setzen Werte von 2 (20 ms) oder weniger auf einen höheren Wert fest
- QT richtet sich nach IE/FF:
(delay < 2 ? 10: delay) * 10
- Chrome richtet sich nach FF: Um blinkende Werbung zu verhindern, die 0 verwendet, werden auf 10 ms oder weniger gesetzte Werte auf 100 ms gesetzt
- FF richtet sich nach IE und Opera: Bei 0~10 wird auf 100 ms angepasst
- IE 5 richtete sich nach Netscape, weil es dort langsamer war: Bei 50 oder weniger wird auf 100 festgesetzt
- Gemeinsam ist all diesem Code, dass 0~1 nicht auf 2, sondern auf 10 (100 ms) angepasst wird
- Das heißt: 10 ist dasselbe wie 100, und 20 ist am schnellsten
Fazit
- Niemand rendert gemäß der GIF-Spezifikation, aber so sollte es meiner Meinung nach sein
- Wer derzeit das schnellste GIF haben will, sollte statt 1 (10 ms) den Wert 2 (20 ms) setzen
- Wenn alle die GIF-Spezifikation korrekt implementieren würden
- könnten GIFs mit 10 ms Verzögerung unterstützt werden
- könnte ein einzelnes Frame einer GIF-Animation mehr als 256 Farben unterstützen
- würde die Verwirrung verschwinden, dass kleine Verzögerungswerte langsamer sind
- könnten GIFs erstellt werden, die pro Frame nur aktualisierte Bereiche enthalten, was die Kompressionsrate verbessert
Noch keine Kommentare.