15 points par xguru 2022-02-23 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Pour accélérer au maximum la vitesse d’un GIF animé, il faut définir le « Frame Delay » sur « 20ms » et non sur « 10ms ». Pourquoi ?
  • L’animation a commencé à être prise en charge à partir du GIF 89a
    • Il est possible de définir un délai pour chaque image
    • Le temps d’attente avant de passer à l’image suivante est exprimé en centièmes de seconde (unités de 10 ms)
    • On peut définir une valeur de 0 à 0xffff (soit environ 10 minutes de délai)
  • Que se passe-t-il si l’on définit 0 ? La spécification ne donne pas de réponse exacte, mais précise deux choses
    • Lors du décodage d’un GIF, chaque image doit être traitée sans délai
    • La valeur de délai n’est utilisée que lorsqu’elle n’est pas égale à 0
    • Autrement dit, si l’on met 0, cela devrait être « combiné avec l’image précédente et traité comme une image statique »
      • Cela permet de réduire la taille en n’incluant que des images qui stockent les parties en mouvement
  • Le problème, c’est que personne ne prend en charge un délai de 0
    → La plupart des programmes qui prennent en charge les GIF forcent toute valeur inférieure ou égale à 2 (20 ms) à une valeur supérieure
    • QT s’aligne sur IE/FF : (delay < 2 ? 10: delay) * 10
    • Chrome s’aligne sur FF : pour empêcher les publicités clignotantes d’utiliser 0, les valeurs définies à 10 ms ou moins sont fixées à 100 ms
    • FF s’aligne sur IE et Opera : dans les cas 0~10, la valeur est ajustée à 100 ms
    • IE 5 s’est aligné sur Netscape, qui était lent : les valeurs inférieures ou égales à 50 sont fixées à 100
  • Le point commun entre tous ces codes est qu’ils n’ajustent pas 0~1 à 2, mais à 10 (100 ms)
    • Autrement dit, 10 équivaut à 100, et 20 est le plus rapide

Conclusion

  • Personne ne fait le rendu des GIF conformément à la spécification, mais il faudrait sans doute le faire (IMO)
  • Aujourd’hui, pour obtenir le GIF le plus rapide, il faut définir 2 (20 ms) au lieu de 1 (10 ms)
  • Si tout le monde implémentait correctement la spécification GIF
    • Il deviendrait possible de prendre en charge les GIF avec un délai de 10 ms
    • Une seule image d’animation GIF pourrait prendre en charge plus de 256 couleurs
    • On éliminerait la confusion selon laquelle donner une petite valeur de délai ralentit l’animation
    • On pourrait créer des GIF ne contenant que les zones mises à jour à chaque image, ce qui améliorerait le taux de compression

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.