Taux de Compression suggéré avec H. 264?

Note bene: je me rends compte que c'est une question extrêmement compliquée avec environ un million de niveaux de nuance que j'essaie de réduire à un seul nombre...

Je suis sur le point d'entreprendre un grand projet d'encodage vidéo en utilisant l'encodage H. 264. Nous essayons de créer plusieurs profils de débit binaire afin d'accueillir le streaming sur les connexions internet, les processeurs, les périphériques, etc.

D'une manière générale, quel type de taux de compression devrais-je m'attendre à voir (alors que rester dans un niveau raisonnable de qualité)?

Par exemple, un fichier vidéo de 640x360 pixels (16:9) à 24 images par seconde et une couleur de 16 bits devrait produire un fichier non compressé d'environ 33 Mo / s.

On m'a dit que, pour ce fichier, 500 Kbits/seconde (ou 62 KB / s) n'est pas un débit vidéo déraisonnable. Cela semble fou - plus de 530:1 compression? C'est 99,8% de compression. Est mes calculs faux?

Je cherche juste un guide externe rugueux pour la qualité, comme "plus de 500 x de compression est fou" ou "moins de 400x est un gaspillage de bande passante". J'ai regardé partout, et rien ne me donne une sorte de compression attendue...

31
demandé sur Nuby 2011-02-17 04:18:56

5 réponses

Dans un document très intéressant appelé H. 264 Primer , une formule simple est donnée comme un indice pour calculer le débit de fichier de sortie "idéal", basé sur les caractéristiques de la vidéo:

[largeur de l'image] x [hauteur de l'image] x [framerate] x [mouvement rang] x 0.07 = [bitrate]

Où la largeur et la hauteur de l'image sont exprimées en pixels, et le rang de mouvement est un entier compris entre 1 et 4, 1 étant un mouvement faible, 2 étant un mouvement moyen et 4 étant un mouvement élevé (motion étant la quantité de données d'image qui change entre les images, consultez le document lié pour plus d'informations).

Par exemple, si nous prenons une vidéo 1280x720 à 24 FPS, avec un mouvement moyen (film avec des mouvements de caméra lents, pas beaucoup de changements de scène...), le débit idéal attendu serait:

1280 x 720 x 24 x 2 x 0,07 = 3,096,576 bps = > approximativement 3000 kbps

Ceci est purement un indice, et à mon avis, la seule façon de trouver avec précision le débit binaire idéal est essai par erreur :)

55
répondu SirDarius 2018-01-26 12:30:09

Cela varie considérablement en fonction du contenu des vidéos source. Je vais obtenir dans un instant.

640x360 n'est pas si grand. 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? Une réponse simplifiée: il y a quelques techniques et faits sur compression vidéo qui rendent cela possible:

  1. Pas toutes les images vidéo structure de données dans un H. 264 commun (ou d'autres CODECs d'ailleurs) est une image complète . Au lieu de cela il existe deux types qui sont familièrement appelés
    1. Clé Cadres: un rendu complet de la totalité de l'image vidéo
    2. Intra-trames : une description des modifications apportées à la trame précédente. Ces images représentent généralement la grande majorité (80% -99%) des images d'une vidéo.
  2. H. 264 est " avec perte", comme beaucoup d'autres CODECs. Ils ne reproduisent pas un pixel par pixel, image par image copie exacte de la vidéo source d'origine. exemple: blocs avec perte: si tous les pixels d'une zone sauf un ont la même couleur, le CODEC "perd" le pixel unique. Ainsi, au lieu d'avoir à stocker des informations sur chaque pixel dans un cadre, le CODEC dit simplement "x1, y1 à x2, y2 sont tous de couleur x". Très efficace.

Tout est follement plus complexe que cela, avec des millions d'approches, de techniques et de algorithmes dans des CODECs spécifiques et entre les CODECs pour y arriver.

Donc, revenons au commentaire "cela va varier considérablement en fonction du contenu des vidéos source": le taux de compression que vous verrez, et la qualité résultante, dépendra de manière significative de:

  • le contenu de la vidéo
  • votre tolérance pour les artefacts (blocs, perte de couleur, perte de définition)
  • les paramètres de CODEC que vous définissez, et comment vous définissez les

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 va avoir un incroyable taux de compression élevé. Mes calculs de dos de serviette ont mis ce scénario à 15 000:1 compression.

Puisque vous démarrez sur un grand projet d'encodage vidéo, je recommanderais quelques choses pour déterminer quel sera votre taux de compression:

  • prenez un échantillon des vidéos source que vous allez coder. 100 ou plus étant statistiquement pertinents.
  • encodez-les à différents débits binaires, avec différents paramètres, pour déterminer quelles caractéristiques résultantes répondent à vos besoins

Changer les paramètres de l'encodeur pour rendre les vidéos plus petites peut aussi avoir d'autres impacts:

  • exigences plus élevées pour la lecture du processeur
  • attentes du codec du Joueur. Toutes les vidéos encodées H. 264 ne peuvent pas être lues par tous les joueurs
  • encodage plus long temps
  • divers dégradant de qualité

C'est un sujet compliqué. Bonne chance. Mon vécu "pouce-pour-le-vent" test en dit, vous serez plus heureux avec 512-768kbps pour votre projet.

20
répondu Stu Thompson 2015-11-01 03:21:17
Compression Ratio Rules of Thumb
Compression ratios to maintain excellent quality:
– 10:1 for general images using JPEG
– 30:1 for general video using H.263 and MPEG-2
– 50:1 for general video using H.264 / MPEG-4 AVC

À Partir de http://www.kanecomputing.co.uk/pdfs/compression_ratio_rules_of_thumb.pdf

8
répondu Const 2012-08-21 22:28:14

N'oubliez pas la lecture normale MPEG n'utilisera que YUV 4: 2: 0. En profondeur de couleur 8 bits, chaque pixel ne vaut que 16 bits (ou 64 bits chacun 4 pixels). Veuillez, seul le fichier RAW de la caméra utilisera une profondeur de 16 bits, et il doit valoir des millions USD!!Moyen Haute film DVR seulement peut fournir 12-14bit!!Et personne n'utilisera H. 264 pour stocker RAW. H. 264 est daigné pour le produit final.

Dans 640x360 / 24P YUV4: 2: 0 le bitrate vaudra:

  640x360x24x(8+4+4)/8 = 10.5MB/s

Pour 500Kbps la compression sera seulement 172:1. C'est normal

Au lieu de expatiation de YUV4: 2: 0, lire:
http://en.wikipedia.org/wiki/Chroma_subsampling

2
répondu Wilson Luniz 2014-04-08 05:19:49

Juste partager mes connaissances sur l'encodage avec L'environnement H264

Quant au rapport 450-512 kbits / seconde est le meilleur si vous utilisez H264 avec High 5.0 ou High 7.0. Eh bien, je peux vous suggérer que pour obtenir un bon ratio en équilibre avec la meilleure qualité, la clé qui compte vraiment est de jouer avec la taille de la résolution. Résultat de la résolution vidéo = 3/4 * Résolution vidéo Native / Raw

H264 a tendance à perdre plus de détails si vous ne compressez pas le cadre en un peu plus petit résolution.

0
répondu laruffii 2012-12-05 01:44:58