human
Pourquoi les vidéos en ligne sont-elles diffusées sans problème sur mon ordinateur, mais pourquoi les GIF semblent-ils se charger comme un film 1080p via un modem 56k ? ? S'il vous plaît, expliquez-moi comme si j'avais cinq ans.
gpt
tl;dr : GIF est un format de compression d'image, qui n'est pas vraiment adapté à la compression de données vidéo. Fondamentalement, le seul avantage est que les navigateurs prennent en charge le format de manière native sans charger de plugins. Les vidéos réelles compressées avec des encodeurs vidéo sont bien plus efficaces. --- Dans un GIF animé, chaque image de l'animation est encodée dans un fichier séparé, puis les fichiers sont plus ou moins collés ensemble dans l'animation finale. Vous pouvez faire quelque chose de similaire avec JPEG (Motion JPEG), bien qu'il ne soit pas pris en charge par les navigateurs de la même manière que les GIF. De plus, les GIF font un meilleur travail de compression des dessins au trait plutôt que des photographies. Ainsi, faire une vidéo à partir d'images GIF donne de toute façon une compression assez médiocre. Dans un fichier vidéo encodé, le compresseur vidéo tient compte du fait que les trames successives sont (probablement) liées les unes aux autres. La première image est entièrement encodée , selon une méthode similaire ( mais plus avancée ) à celle d' un JPEG . Cependant , la trame suivante est généralement codée comme la différence entre la première trame et la seconde . C'est beaucoup plus efficace pour la plupart des vidéos où le mouvement se produit lentement. Supposons que la vidéo montre une balle qui tombe. Dans un GIF animé, chaque image est une image complète et autonome du ballon et de tout environnement. Il est plutôt mal compressé et beaucoup d'informations redondantes sont envoyées, de sorte que chaque trame individuelle est très volumineuse. Dans une vidéo encodée avec un codec vidéo ( MPEG1 , MPEG2 , MPEG4 , h.264 , h,265 , etc . ) , la première image est compressée un peu comme un JPEG . Ensuite, la deuxième image dit essentiellement " voyez la région de la première image où se trouve la balle ? Déplacez-la un peu vers le bas. Remplissez l'arrière-plan avec cette information. " - Cette image est * bien * plus petite et plus facile à transmettre que la première image . Il est également plus facile et plus rapide à décoder. Il y a quelques inconvénients à l'approche de la compression vidéo, mais en général, elle représente bien mieux les données vidéo avec beaucoup moins de bits. --- EDIT : Wow, cela attire beaucoup d'attention :) quelques ajouts rapides : -- Oui , les différences d' algorithmes de compression comptent également . J'ai dit quelque chose à cet effet, mais pour étendre : GIF utilise une méthode de compression qui fonctionne bien pour les modèles de couleur, et les encodeurs vidéo utilisent quelque chose qui fonctionne mieux pour les photographies/vidéo en direct. Je n'ai pas essayé d'expliquer le codage DCT/quantification/entropie puisque c'est un sujet super technique pour ELI5. -Oui, GIF peut représenter un simple delta entre deux images. Cependant, dans le cas de données vidéo, il est rare que cela soit utile. Quelqu'un a demandé une explication plus détaillée à ce sujet , [ ma réponse est ici ] ( URL_1 ) . -Oui, il peut y avoir d'autres facteurs à l'œuvre en plus des problèmes de débit/codage. Je pense qu'il est prudent de dire que GIF est un format de compression vidéo terrible, et c'est probablement la racine de nombreux autres problèmes. Cependant, je n'ai pas profilé les navigateurs pour voir où ils passent du temps à décoder les GIF animés. J'ai fait une liste d'autres endroits qui pourraient être inefficaces [ici] (URL_0). - Ouais , ton " enfant de cinq ans n'a pas compris ça " el - oh - el :P Si mon fils de 7 ans était intéressé , j'essaierais de lui expliquer et d' avoir son avis , mais je pense qu'il Je préfère jouer à LEGO. --- EDIT 2 : Quelques autres choses que les gens demandent/mentionnent : - Plusieurs personnes ont mentionné la vidéo HTML5 et WebM comme alternatives aux GIF animés. Il y a beaucoup de va-et-vient, de problèmes juridiques, de concurrents qui refusent de s'entendre, etc., ce qui entrave vraiment la balise vidéo HTML5. [ Wikipédia a un long article sur le sujet . ] ( URL_2 ) Nous avons eu une meilleure technologie vidéo que le GIF depuis des années et le GIF est toujours aussi performant . Je pense que nous sommes coincés avec ça, même si c'est une technologie terrible pour le problème. ( Voir aussi : pratiquement toutes les autres technologies utilisées sur le Web ) - Une question courante est " Cela signifie-t-il que des vidéos plus simples avec moins de mouvement seront encodées dans des fichiers de plus petite taille ? Ou que des vidéos complexes ou vraiment aléatoires rendent des vidéos plus grandes ou moins efficaces fichiers ? " La réponse à cela dépend quelque peu des paramètres de l' encodeur , mais en général la réponse est oui . Si vous encodez une vidéo simple avec peu de mouvement, cela prendra moins de données qu'une vidéo plus complexe avec beaucoup de mouvement et des choses aléatoires. Les encodeurs vidéo modernes sont conçus pour encoder des séquences vidéo à partir de caméras. Ils font des hypothèses basées sur ce à quoi ressemble le monde réel la plupart du temps et utilisent ces hypothèses pour compresser plus efficacement. Ils tiennent également compte de ce que nos yeux voient bien.