Note bene: Je réalise que c'est une question extrêmement complexe avec environ un million de nuances que j'essaie de réduire à un seul chiffre ...
Je suis sur le point d'entreprendre un grand projet de codage vidéo utilisant le codage H.264. Nous essayons de créer plusieurs profils de débit afin de permettre la transmission en continu via les connexions Internet, les processeurs, les périphériques, etc.
De manière générale, quel type de taux de compression devrais-je m'attendre à voir (tout en restant dans un niveau de qualité raisonnable)?
Par exemple, un fichier vidéo de 640 x 360 (16: 9) pixels à 24 images par seconde et une couleur 16 bits devraient donner un fichier non compressé d'environ 33 Mo/s.
On m'a dit que, pour ce fichier, 500 Kbits/s (ou 62 Ko/s) n'est pas un débit vidéo déraisonnable. Cela semble insensé - plus de 530: 1 compression? C'est 99,8% de compression. Est-ce que mes calculs sont faux?
Je cherche simplement un guide externe approximatif pour la qualité, comme "plus de 500 fois la compression est folle" ou "moins de 400x est un gaspillage de bande passante". J'ai regardé partout et rien ne me donne le type de compression attendu ...
Dans un document assez intéressant appelé H.264 Primer , une formule simple est donnée comme indice pour calculer le débit `idéal 'du fichier de sortie, en fonction des caractéristiques de la vidéo:
[largeur de l'image] x [hauteur de l'image] x [nombre d'images par seconde] x [rang du mouvement] x 0,07 = [débit binaire souhaité]
où la largeur et la hauteur de l'image sont exprimées en pixels et où le rang de mouvement est un entier compris entre 1 et 4, 1 étant un mouvement faible, 2 le mouvement moyen et 4 le mouvement élevé (le mouvement étant la quantité de données d'image variant entre cadres, voir le document lié pour plus d’informations).
Ainsi, par exemple, si nous prenons une vidéo 1280x720 à 24 images par seconde, avec un mouvement moyen (film avec des mouvements de caméra lents, peu de changements de scène ...), le débit idéal devrait être:
1280 x 720 x 24 x 2 x 0,07 = 3 096 576 bps => environ 3 000 kbps
Ceci est purement une allusion, et à mon avis, le seul moyen de trouver avec précision le débit idéal est d'essayer par erreur :)
Cela varie considérablement en fonction du contenu des vidéos sources. J'y viendrai dans un instant.
640x360 n'est pas si grande. 512kbps est très raisonnable et sans doute standard. Peut-être 768kbps si vous êtes vraiment intéressé par la qualité.
Comment est-ce possible? Réponse simplifiée: Il existe plusieurs techniques et informations sur/ la compression vidéo qui rendent cela possible:
Tout cela est énormément plus complexe que cela, avec des millions d’approches, de techniques et d’algorithmes différents au sein de CODEC spécifiques et entre CODEC pour y parvenir.
Revenons donc au commentaire "Cela variera considérablement en fonction du contenu des vidéos sources": le taux de compression que vous verrez, ainsi que la qualité qui en résulte, dépendra en grande partie de:
Exemple: une vidéo d'une porte dans une pièce (comme une caméra de sécurité) avec une image clé toutes les dix minutes produira un taux de compression incroyablement élevé. Mes calculs de la serviette en papier ce scénario à une compression de 15 000: 1}
Étant donné que vous démarrez un grand projet d’encodage vidéo, je vous recommanderais deux solutions pour déterminer le taux de compression de votre ordinateur:
La modification des paramètres de l'encodeur pour réduire la taille des vidéos peut également avoir d'autres conséquences:
C'est un gros sujet compliqué. Bonne chance. Mon test expérimenté "pouce au vent" indique que vous serez plus qu'heureux de disposer de 512-768kbps pour votre projet.
Taux de compression Règles de pouce Taux de compression pour maintenir une excellente qualité: – 10: 1 pour les images générales utilisant JPEG – 30: 1 pour la vidéo générale utilisant H.263 et MPEG-2. .– 50: 1 pour la vidéo en général avec H.264/MPEG-4 AVC
de http://www.kanecomputing.co.uk/pdfs/compression_ratio_rules_of_thumb.pdf
N'oubliez pas que la lecture normale MPEG utilisera uniquement YUV 4: 2: 0. Avec une profondeur de couleur de 8 bits, chaque pixel ne vaut que 16 bits (ou 64 bits de 4 pixels). S'il vous plaît, seul le fichier RAW de l'appareil photo utilisera une profondeur de 16 bits, et il doit valoir des millions de dollars! Film de niveau moyen élevé DVR ne peut fournir qu'une résolution de 12-14 bits! . H.264 est conçu pour le produit final.
En 640x360/24p YUV4: 2: 0 le débit vaudra:
640x360x24x(8+4+4)/8 = 10.5MB/s
Pour 500Kbps, la compression ne sera que de 172: 1. C'est normal
Pour expatiation de YUV4: 2: 0, lire:
http://fr.wikipedia.org/wiki/Chroma_subsampling
Juste partager mes connaissances sur l'encodage avec l'environnement H264
En ce qui concerne le rapport 450-512 kbits/seconde est préférable si vous utilisez H264 avec High 5.0 ou High 7.0 . Eh bien, je peux vous suggérer que pour obtenir un bon rapport entre équilibre et qualité, la clé qui compte vraiment c'est pour jouer avec la taille de résolution . Résultat de la résolution de la vidéo = 3/4 * Résolution de la vidéo Native/Raw
H264 a tendance à perdre davantage de détails si vous ne compressez pas le cadre dans une résolution un peu plus petite.