Ce que vous avez calculé est le débit binaire d'une vidéo brute et non compressée. Vous ne les trouverez généralement que dans la recherche ou d'autres applications spécialisées. Même les diffuseurs utilisent la vidéo compressée, bien qu'à un débit binaire beaucoup plus élevé que votre vidéo YouTube typique.
Ainsi, la qualité vidéo a beaucoup à voir avec la façon dont la vidéo a été compressée. Plus vous le compressez, moins il faut de bits par trame. De plus, plus vous compressez, plus la qualité est mauvaise. Maintenant, certaines vidéos sont beaucoup plus faciles à compresser que d'autres - c'est essentiellement pourquoi elles ont un débit binaire inférieur même si elles ont la même résolution et la même fréquence d'images.
Afin de comprendre pourquoi c'est, vous devez être conscient des deux principes principaux utilisés par la compression vidéo. Celles-ci sont appelées "redondance spatiale" et "temporelle".
Redondance spatiale
La redondance spatiale existe dans les images qui montrent un contenu naturel. C'est la raison pour laquelle JPEG fonctionne si bien - il compresse les données d'image car des blocs de pixels peuvent être codés ensemble. Ce sont des pixels 8 × 8, par exemple. Ils sont appelés "macroblocs".
Les codecs vidéo modernes font de même: ils utilisent essentiellement des algorithmes similaires à JPEG afin de compresser une image, bloc par bloc. Ainsi, vous ne stockez plus de bits par pixel, mais des bits par macrobloc, car vous "résumez" les pixels en groupes plus importants. En les résumant, l'algorithme supprimera également les informations qui ne sont pas visibles à l'œil humain - c'est là que vous pouvez réduire la majeure partie du débit binaire. Cela fonctionne en quantifiant les données. Cela permettra de conserver des fréquences plus perceptibles et de «jeter» celles que nous ne pouvons pas voir. Le facteur de quantification est exprimé comme "QP" dans la plupart des codecs, et c'est le bouton de contrôle principal pour la qualité.
Vous pouvez maintenant même aller de l'avant et prévoir des macroblocs à partir de macroblocs qui ont été précédemment encodés dans la même image. C'est ce qu'on appelle la prédiction intra . Par exemple, une partie d'un mur gris était déjà codée dans le coin supérieur gauche du cadre, nous pouvons donc réutiliser ce macrobloc dans le même cadre, par exemple pour le macrobloc juste à côté. Nous allons simplement enregistrer la différence qu'elle avait avec la précédente et enregistrer les données. De cette façon, nous n'avons pas à coder deux macroblocs qui sont très similaires l'un à l'autre.
Pourquoi le débit change-t-il pour la même taille d'image? Eh bien, certaines images sont plus faciles à encoder que d'autres. Plus l'activité spatiale est élevée, plus vous devez réellement encoder. Les textures lisses prennent moins de bits que les textures détaillées. Il en va de même pour la prédiction intra: un cadre d'un mur gris vous permettra d'utiliser un macrobloc pour prédire tous les autres, alors qu'un cadre d'eau qui coule pourrait ne pas fonctionner aussi bien.
Redondance temporelle
Cela existe car un cadre suivant un autre cadre est probablement très similaire à son prédécesseur. Généralement, juste un tout petit peu de changements, et cela n'aurait aucun sens de l'encoder complètement. Les encodeurs vidéo ne font que coder la différence entre deux images suivantes, tout comme ils peuvent le faire pour les macroblocs.
Prenant un exemple de l'article de Wikipedia sur la compensation de mouvement , disons que c'est votre cadre d'origine:
Ensuite, la différence avec l'image suivante est la suivante:
L'encodeur ne stocke désormais que les différences réelles , pas les valeurs pixel par pixel. C'est pourquoi les bits utilisés pour chaque trame ne sont pas les mêmes à chaque fois. Ces trames de "différence" dépendent d'une trame entièrement codée, et c'est pourquoi il existe au moins deux types de trames pour les codecs modernes:
- I-frames (aka keyframes) - ce sont ceux entièrement encodés
- P-frames - ce sont ceux qui stockent juste la différence
Vous devez parfois insérer des images I dans une vidéo. Le débit binaire réel dépend également du nombre de trames I utilisées. De plus, plus il y a de différence de mouvement entre deux images suivantes, plus l'encodeur doit stocker. Une vidéo de "rien" en mouvement sera plus facile à encoder qu'une vidéo de sport et utilisera moins de bits par image.